Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用System.out.println显示特殊字符_Java_Database_String_Character Encoding_System.printing - Fatal编程技术网

Java 使用System.out.println显示特殊字符

Java 使用System.out.println显示特殊字符,java,database,string,character-encoding,system.printing,Java,Database,String,Character Encoding,System.printing,我无法将带有特殊字符的文本从Web服务发送或显示到数据库。在eclipse上,我已经将字符编码设置为UTF-8,但它仍然不允许我显示字符。例如,一个简单的打印,如下面的代码 String test ="привет"; System.out.println(test); 或 控制台上的结果,如果我将其发送到我的数据库,则为??????。如何使其在控制台上正确显示,并希望在数据库中正确显示,查看是否有效 PrintStream out = new PrintStream(System.

我无法将带有特殊字符的文本从Web服务发送或显示到数据库。在eclipse上,我已经将字符编码设置为UTF-8,但它仍然不允许我显示字符。例如,一个简单的打印,如下面的代码

String test ="привет"; 
System.out.println(test);

控制台上的结果,如果我将其发送到我的数据库,则为??????。如何使其在控制台上正确显示,并希望在数据库中正确显示,查看是否有效

    PrintStream out = new PrintStream(System.out, true, "UTF-8");
    out.println(test);
为了存储在DB中,请使用以下命令以UTF-8显式编码字符串

String newString = new String(test.getBytes(), "UTF8");

是的,是二十一世纪。上个世纪,我们仍在为字符编码之类的事情而挣扎

我的第一个猜测是:

  • 您的源文件编码可能错误(您是否使用Maven之类的构建工具?可能还需要在那里设置源代码)
  • 您的控制台编码可能错误(是否在Windows下?默认的命令行控制台默认不是UTF,它依赖于本地,但通过注册表中的小游戏,您可以设置其编码)
  • 您的DB编码可能不正确(表编码是什么,您能检查一下吗?)

  • 可能您需要先将字符串解码为ISO-8859,然后将其编码为UTF-8,如果您使用的是Eclipse,那么

  • 右键单击您的项目
  • 转到属性
  • 在“文本”中选择UTF-8 “文件编码”

  • 否,我得到了相同的字符您必须将字符串编码为“iso-8859-1”例如:新字符串(test.getBytes(),“iso-8859-1”);我已将表编码设置为utf8,但结果仍然相同。就编码而言,我可以在android中编程时显示特殊字符。这是eclipse控制台还是sh/cmd?您的控制台设置为什么字符集?eclipse,如果控制台字符集是指Windows>首选项>工作区中的设置,则它设置为UTF-8。是否有其他方法单独设置控制台?如果可能,您应该将其添加为注释而不是答案。
    String newString = new String(test.getBytes(), "UTF8");