在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
?
答案 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);
我打赌你创建该字符串的方法存在问题。