Java+;unicode+;(控制台和/或SQL)=失败?

Java+;unicode+;(控制台和/或SQL)=失败?,java,sql,unicode,Java,Sql,Unicode,这令人沮丧。当我运行下面的程序时,我在控制台中看到“Garci?a”而不是“García”,而如果我在Eclipse调试器中运行它,garciaString包含“García”。发生什么事?问题出在系统中了吗?我必须专门配置它来打印Unicode吗 package com.example.unicode; public class UnicodeTest { public static void main(String[] args) { String garciaSt

这令人沮丧。当我运行下面的程序时,我在控制台中看到“Garci?a”而不是“García”,而如果我在Eclipse调试器中运行它,
garciaString
包含“García”。发生什么事?问题出在系统中了吗?我必须专门配置它来打印Unicode吗

package com.example.unicode;

public class UnicodeTest {
    public static void main(String[] args) {
        String garciaString = "Garci\u0301a";
        System.out.println(garciaString);
    }
}

编辑:我想可能是因为字体的原因,控制台没有打印正确的值。但我也在SQL数据库中插入了“Garci?a”。JDBC+SQL处理Unicode吗?如果没有,我如何处理
插入到mydb(id,name)值(1,“Garci\u0301a”)

这意味着Eclipse控制台没有使用UTF-8编码。您必须在首选项中更改它。请参阅和文章。

这意味着Eclipse控制台没有使用UTF-8编码。您必须在首选项中更改它。请参阅和文章。

Eclipse控制台/系统控制台等存在问题。Java在内部使用Unicode操作,但在输出方面有更多技巧


通常,如果输出到文件,请始终使用
OutputStringWriter
ans指定正确的编码,但当您打印到System.out时,应使用操作系统定义的行为。可以配置Eclipse控制台,使用Windows控制台更难。您始终可以将标准输出定向到文件,并在unicode处理编辑器中查看结果,如geditNotepad++

Eclipse控制台/系统控制台等存在问题。Java在内部使用unicode操作,但在输出方面有更多技巧


通常,如果输出到文件,请始终使用
OutputStringWriter
ans指定正确的编码,但当您打印到System.out时,应使用操作系统定义的行为。可以配置Eclipse控制台,使用Windows控制台更难。您总是可以将标准输出定向到文件,并在unicode处理编辑器(如geditNotepad++

中查看结果,当您说“控制台”时,您是指命令行窗口吗?如果是这样的话,问题是您运行它的命令行不支持Unicode。在MySQL中是nvarchar还是varchar?varchar(4096)——我以前从未听说过nvarchar。NVARCHAR应该解决SQL问题OK,MySQL中没有“真正的”NVARCHAR,而是使用字符集排序;在我的字典里,它是默认的
latin1\u swedish\u ci
。我刚把它改成了
utf8\u general\u ci
;希望这能奏效。仍然不确定我的数据管道中还有哪些地方有问题。当你说“控制台”时,你是指命令行窗口吗?如果是这样的话,问题是您运行它的命令行不支持Unicode。在MySQL中是nvarchar还是varchar?varchar(4096)——我以前从未听说过nvarchar。NVARCHAR应该解决SQL问题OK,MySQL中没有“真正的”NVARCHAR,而是使用字符集排序;在我的字典里,它是默认的
latin1\u swedish\u ci
。我刚把它改成了
utf8\u general\u ci
;希望这能奏效。仍然不确定我的数据管道中还有哪些地方遇到了问题。是的,以前遇到过这个问题。这里有一个有用的链接:是的,以前遇到过这个问题。这里有一个有用的链接: