无法显示特殊字符

我无法在屏幕上显示特殊字符(波兰字符)。 我有一个要求,我从数据库中获取具有一些特殊字符的数据。 我以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  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

我不确定你要问的是什么(是否要将字符存储为xml,将其打印到控制台等)但是要做unicode,你在unicode代码点前加上\ uXXXX,所以例如

 String str = "\u00F6"; char c = '\u00F6'; 

将是角色ö。

请注意,这是在这里输入链接描述

当您想在控制台窗口中编写波兰字符时使用(重定向System.out !!!)

请看: UTF-8 CJK字符不在Java中显示

我测试过:

 System.setOut(new PrintStream(System.out, true, "Cp852")); System.out.println("ex1...."+ex1); 

……它的工作原理!!!! – 在cmd窗口中显示抛光字母。

Powodzenia!