3

0x{2}JavaでUnicode文字を書くにはどうすればよいですか?

試してみまし"\u0002"たが、うまくいかないようです。

この文字を検索する必要があるのは、解析する前に XML ファイルで置換する必要があるためです。

メンションの解析中に発生するエラー:An invalid XML character (Unicode: 0x{2}) was found in the value of attribute "{1}" and element is "4".を置き換え\u0002てもエラーは解決しません。

これは私が解析している方法です:

try {
    // Fixing any invalid characters in the XML file
    fixXMLFile(xmlFile);

    // Get a factory
    SAXParserFactory spf = SAXParserFactory.newInstance();

    // Get a new instance of parser
    SAXParser sp = spf.newSAXParser();

    // Parse the file and also register this class for call backs
    sp.parse(xmlFile, this);

} catch(Exception e) {
    System.out.println(e.getLocalizedMessage());
}

そして修正方法:

private void fixXMLFile(File xmlFile) throws IOException {
    File tempFile = File.createTempFile("dont_delete", ".tmp");
    FileWriter fw = new FileWriter(tempFile);

    Reader fr = new FileReader(xmlFile);
    BufferedReader br = new BufferedReader(fr);

    int sdds = 0;
    while(br.ready()) {
        String tmp = br.readLine();
        if (tmp.contains("\u0002")) System.out.println(++sdds);
        fw.write(tmp.replaceAll("\u0002", "") + "\n");
    }

    fw.close();
    br.close();
    fr.close();

    // Finally replace the original file.
    tempFile.renameTo(xmlFile);
}
4

2 に答える 2

0

見つけた。0x{2}エラーメッセージは"\u0004"Javaです。これを置き換えると、エラー メッセージが表示されなくなります。

于 2013-03-13T21:59:07.573 に答える
-1

その文字は XML では許可されていません。参照については Wikipediaate を参照してください: http://en.wikipedia.org/wiki/Valid_characters_in_XML#XML_1.0

于 2013-03-13T21:40:12.970 に答える