Java输出UTF-8到真实角色?

时间:2013-12-07 21:09:44

标签: java utf-8

在Java中,如何将UTF-8输出到实际字符串?

     我们

     \u6211\u4eec

        String str = new String("\u6211\u4eec"); 
       System.out.println(str); // still ouput \u6211\u4eec, but I expect 我们 to be an output

-----
String tmp = request.getParameter("tag");
        System.out.println("request:"+tmp);
        System.out.println("character set :"+request.getCharacterEncoding());       
        String tmp1 = new String("\u6211\u4eec");       
        System.out.println("string equal:"+(tmp.equalsIgnoreCase(tmp1)));
        String tag = new String(tmp);       
        System.out.println(tag);

request:\u6211\u4eec
character set :UTF-8
string equal:false
\u6211\u4eec

从输出中,请求中的值与tmp1的字符串值相同,但为什么equalsIgnoreCase输出false

2 个答案:

答案 0 :(得分:1)

Java String以UTF-16编码。我没有看到你的代码有任何问题,我相信问题来自你的控制台,它没有正确显示字符串的内容。

如果您使用的是eclipse,请将此处的控制台编码更改为UTF-8

Eclipse > Preferences > General > Workspace > Text file encoding

答案 1 :(得分:1)

你尝试只显示其中一个吗?像

   String str = new String("\u6211"); 
   System.out.println(str);

我打赌你创建该字符串的方法存在问题。