[英]Not able to display special characters
我无法在屏幕上显示特殊字符(抛光字符)。 我有一个要求,我从数据库中获取具有一些特殊字符的数据。 我以xml格式获取数据(xml没有将其识别为字符串)并将其传递给我尝试显示数据的操作。 我试图将特殊字符的Uniciode作为ł
但是当我尝试显示时,这会被转换为ł
因此我无法显示它,因为它不会将其作为字符串。
String ex1="ł";
System.out.println("ex1...."+ex1);
output:: ?
我试图使用以下代码获取Unicode ::
public static String convert (String str) throws UnsupportedEncodingException
{
String tc = str;
String output = "";
char[] ca = tc.toCharArray();
for (int i = 0; i < ca.length; ++i)
{
char a = ca[i];
if ((int) a > 255)
{
output += "&"+"#X"+ Integer.toHexString((int) a) + ";";
}
else
{
output += a;
}
}
return output;
}
输出为:如果输入为str="ł"
则output=ł
不要重新发明轮子! 使用Apache Commons Lang库中的StringEscapeUtils类的escapeXml方法,这样就可以实现这个简单的解决方案:
StringEscapeUtils.escapeXml(input);
将页面的内容类型设置为UTF-8。
还要确保将响应头设置为UTF-8。 请参阅 - http://www.w3.org/International/O-HTTP-charset.en.php
当您想在控制台窗口中编写波兰字符时使用(重定向System.out !!!)
我测试过:
System.setOut(new PrintStream(System.out, true, "Cp852"));
System.out.println("ex1...."+ex1);
......它的工作原理!!!! - 在cmd窗口中显示抛光字母。
Powodzenia!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.