我无法在屏幕上显示特殊字符(波兰字符)。我有一个要求,我从数据库中获取具有一些特殊字符的数据。我以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=ł
答案 0 :(得分:3)
不要重新发明轮子!使用escapeXml库中StringEscapeUtils类的Apache Commons Lang方法,这就是这个简单的解决方案:
StringEscapeUtils.escapeXml(input);
答案 1 :(得分:2)
答案 2 :(得分:0)
我不是肯定确定您要问的内容(是否要将该字符存储为xml,将其打印到控制台等)但是要使用unicode作为unicode代码点的前缀使用\ uXXXX,例如
String str = "\u00F6";
char c = '\u00F6';
将是角色ö。
请注意,这已取消enter link description here
答案 3 :(得分:0)
如果您想在控制台窗口中编写波兰字符,请使用(重定向System.out !!!)
看看: UTF-8 CJK characters not displaying in Java
我测试过:
System.setOut(new PrintStream(System.out, true, "Cp852"));
System.out.println("ex1...."+ex1);
......它的工作原理!!!! - 在cmd窗口中显示抛光字母。
Powodzenia !!!