1

StAX を使用して XML ファイルを読み取っていますが、žćčšđ などの文字に問題があります。コードはSAXとほぼ同じですが、そのような問題はありませんでした。

これは xml ドキュメントの一部です

<?xml version = "1.0" encoding="UTF-8" ?>      
<Autor>
        <Id>1</Id>
        <Meno>Jano Žiška</Meno>
        <Email>dfdsfsfdsdf@gmail.com</Email>
        <tel_cislo typ="mobil">0944564685</tel_cislo>  
        <plat>500</plat>
      </Autor>

ジャワ

        public static void main(String[] args) {
            try {
              XMLInputFactory f = XMLInputFactory.newInstance();
              XMLStreamReader r = f.createXMLStreamReader(new FileReader(SUBOR));
            }
....
          if (r.getLocalName().equals(ELEMENT_MENO) == true) {
            String v = r.getElementText();
             System.out.println("meno:\t\t\t " + v);
          }

Javaでエンコーディングを指定するにはどうすればよいですか? ありがとう

4

2 に答える 2

3

よほどの理由がない限り、文字ストリーム (Reader/Writer) ではなく、常にXML でバイナリストリーム (InputStream/OutputStream) を使用する必要があります。文字ストリームを使用すると、xml が破損するリスクがあります (OP の元のコードが示すように)。

XMLStreamReader r = f.createXMLStreamReader(new FileInputStream( SUBOR ));
于 2013-04-25T19:33:58.917 に答える
0

FileReader を使用する代わりに、次のようにします。

XMLStreamReader r = f.createXMLStreamReader(
        new InputStreamReader(
                new FileInputStream( SUBOR ),
                Charset.forName( "UTF8" ) ) );
于 2013-04-25T18:42:00.247 に答える