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

时间:2012-02-28 21:18:35

标签: java sql unicode

这令人沮丧。当我运行以下程序时,我在控制台中看到“Garci?a”而不是“García”,而如果我在Eclipse调试器中运行它,garciaString包含“García”。这是怎么回事?是System.out中的问题?我是否必须专门配置它来打印Unicode?

package com.example.unicode;

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

编辑:我想也许控制台因字体而无法打印正确的值。但我也将“Garci?a”插入SQL数据库中。 JDBC + SQL是否处理Unicode?如果没有,我该如何处理INSERT INTO mydb (id, name) VALUES (1, "Garci\u0301a")

2 个答案:

答案 0 :(得分:3)

这意味着Eclipse控制台不使用UTF-8编码。您必须在首选项中更改它。请参阅Getting Unicode output in Eclipse Consolethis文章。

答案 1 :(得分:1)

Eclipse控制台/系统控制台等存在问题.Java在内部运行Unicode,但是输出有更多技巧。

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