JAXB xjc工具和非ascii字符

时间:2012-08-29 16:08:55

标签: jaxb xjc non-ascii-characters

我有一个xsd方案,其中包含非ascii字符。

我想生成类但强制xjc工具不要将这些字符转换为unicode格式(\ uXXXX),并保持原样。

麻烦的是当它将unicode表示中的枚举值放入生成的类的XmlEnumValue注释时,JAXB unmarshaler无法映射相应的字段。当我手动将其转换为普通状态时,它可以正常工作。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用此代码将文件中的字符转换回本机表示:

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringEscapeUtils;

public void convertToNative(String filePath) throws IOException {
    File file = new File(filePath);
    FileWriter writer = new FileWriter(filePath + ".converted");
    try {
        String s = FileUtils.readFileToString(file, "utf-8");
        s = StringEscapeUtils.unescapeJava(s);
        writer.write(s);
    } finally {
        writer.close();
    }
}