Java Apache Commons StringEscapeUtil中的Bug?

Java Apache Commons StringEscapeUtil中的Bug?,java,html,apache-commons,Java,Html,Apache Commons,刚开始使用apachecommons 根据,Ö应与Ö相对应。但是, System.out.println(StringEscapeUtils.unescapeHtml4("Ö")); 印刷品 × 这是虫子吗?或者我遗漏了什么?也许您的控制台无法显示Ö字符。检查系统属性file.encoding,查看默认控制台编码是什么 如果您的控制台支持UTF-8,您可以尝试使用-Dfile.encoding=UTF-8启动JVM,也可以从应用程序执行此操作: System.set

刚开始使用apachecommons

根据,
Ö应与Ö相对应。但是,

System.out.println(StringEscapeUtils.unescapeHtml4("Ö"));
印刷品

×

这是虫子吗?或者我遗漏了什么?

也许您的控制台无法显示Ö字符。检查系统属性
file.encoding
,查看默认控制台编码是什么

如果您的控制台支持UTF-8,您可以尝试使用
-Dfile.encoding=UTF-8
启动JVM,也可以从应用程序执行此操作:

System.setOut(new PrintStream(System.out, true, "utf-8"));
如果控制台不支持UTF-8,我建议尝试使用UTF-8编码将其写入文件,然后使用可以处理UTF-8的文本编辑器打开该文件


如果所有这些都不起作用,那么它可能是
StringEscapeUtils

2.5版
StringEscapeUtils.unescapeHtml
打印
Ö

版本3.0-beta
StringEscapeUtils.unescapethml3
StringEscapeUtils.unescapethml4
打印
×

通常我会使用最新的稳定版本(目前为2.5)。看起来像一个bug,但我在

中找不到任何有用的东西。我想从lang3存储库中可以看出,这是一个bug:

{"\u00D6", "Õ"}, // � - uppercase O, tilde
{"\u00D7", "Ö"}, // � - uppercase O, umlaut
{"\u00D8", "×"}, // multiplication sign 
看起来,有些值被移动了一行。它必须是:

 {"\u00D6", "Ö"}, // � - uppercase O, umlaut
 {"\u00D7", "×"}, // multiplication sign 
因为根据


x
“\u00D7”

它在哪里打印?在控制台上?不,在打印机上。。。jk,是的,在控制台中。您的控制台能否显示
Ö
?您使用的是3.0测试版吗?是的。3.0测试版,所以问题是,它是否是这个测试版中的一个bug。已确认。2.5工程。我想是测试版的Bug吧。谢谢谢鲁维姆!控制台为
ö所以这可能不是问题所在。