1

XMLを解析するAndroidアプリを作成しています。XML データには HTML hex ( &#<dec value>)が含まれているため、それらを変換してアプリに表示する必要があります。コードに8217を渡すと、中国語/日本語 (よくわかりません) の文字が返されます。これが私のコードです。

public char decToChar(String dec){
    Int decimal = Integer.parseInt(dec, 16);
    return (char)decimal;
}

このメソッドに値 ' 8217 ' を渡すと、 ' の代わりに漢字が返されます。

なぜそれが機能しないのか、誰にも分かりますか?

4

2 に答える 2

1

あなたは何を期待していますか?16 進値を 33303 に正しく解析している可能性があります。ただし、(char) にキャストしているため、無意味な値が生成されます。これは文字への変換ではありません。

可能であれば、Apache Commons を使用することをお勧めします。StringEscapeUtilsがそのトリックを行います。

于 2013-09-29T18:34:34.777 に答える