Xml解析不适用于瑞典语Chrs

时间:2012-01-24 12:44:16

标签: java xml parsing locale

我正在尝试将以下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吗?

2 个答案:

答案 0 :(得分:0)

Okej所以我找到了答案,我需要使用以下选项运行我的JVM:

JAVA_TOOL_OPTIONS : -Dfile.encoding=UTF8

答案 1 :(得分:0)

结果取决于您机器的区域设置,表明您正在使用jvm的默认字符集读取xml文件。正确的方法是让xml解析器找出编码。这通常意味着在解析文档时使用InputStream而不是Reader

您没有显示实际解析文件的部分,但我猜您创建了FileReaderInputStreamReader而未指定字符集,只需使用FileInputStream