我正在尝试将以下xml解析为punycode,但它无法正常工作(我尝试过不同的设置)。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<domain index="1" domainname="teståbel.nu">
<?xml version="1.0" encoding="UTF-8" ?>
<domain index="1" domainname="teståbel.nu">
public void setDomainName(String domainName) {
this.domainName = java.net.IDN.toUnicode(domainName);
当我运行setDomain()时,一切都设置正确。
我在我的机器上运行了这个,本地设置为瑞典语的Windows 7,它失败了。然后我在另一台机器上使用Windows XP进行了测试,其中Local设置为英语(美国),并且它可以工作。
所以我的结论是编码工作但我的环境有问题,有人知道如何解决这个问题吗?我可以使用某些参数运行我的JVM吗?
答案 0 :(得分:0)
Okej所以我找到了答案,我需要使用以下选项运行我的JVM:
JAVA_TOOL_OPTIONS : -Dfile.encoding=UTF8
答案 1 :(得分:0)
结果取决于您机器的区域设置,表明您正在使用jvm的默认字符集读取xml文件。正确的方法是让xml解析器找出编码。这通常意味着在解析文档时使用InputStream
而不是Reader
。
您没有显示实际解析文件的部分,但我猜您创建了FileReader
或InputStreamReader
而未指定字符集,只需使用FileInputStream
。