有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将Blob转换为具有特殊字符的字符串

我正在尝试将blob变量转换为字符串。在DB级别,变量包含类似意大利语字符的XML文件

(è, ò, à e ...)

我已经使用的代码如下:

   byte[] result = blob.getBytes(1, (int) blob.length());
   String b = new String(result);
   System.out.println(b);

输出无法解析特殊字符。我想这是因为将这些字母转换成字节将消除它们的实际值


共 (2) 个答案

  1. # 1 楼答案

    这实际上取决于如何将String转换为非ASCII字符(特殊字符)。将blob转换为string时,需要指定正在使用的encoding

  2. # 2 楼答案

    意大利语:

    String b = new String(result, "UTF-8"); // All languages of the world
    String b = new String(result, "Windows-1252"); // Some European languages
    

    而blob必须已相应填充:

    byte[] bytes = b.getBytes("UTF-8");
    byte[] bytes = b.getBytes("Windows-1252");
    

    选择UTF-8-然后你就有了表情符号

    注意这个系统。out使用本地编码,因此在希腊语PC上可能无法正确显示文本