- - PR -
ローム数字が文字化け
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-03 16:19
Javaでローマ数字『T』の設定されたXML文書をパースすると
メモリ上でローマ数字が文字化けします。 【例】 <element id="accident">T.問題</element> ^^ 上記の下線部分がXML文書からDOMに展開後、メモリ上で文字 化けします。 あと、『@A』などの文字も化けます。 どなたか、解決策を教えて下さい。 | ||||
|
投稿日時: 2005-08-04 12:21
それらの字は俗に「機種依存文字」と呼ばれるもので、特定の文字エンコーディングにしか
存在しない文字です。Javaではすべての文字列はUnicodeとして扱われますが、Unicodeには それらの文字が存在しないために扱うことができません。 一番の解決策は、複数の文字エンコーディングが介在する環境ではこれらの機種依存文字を 使わないことです。 | ||||
|
投稿日時: 2005-08-04 13:49
ローマ数字の1や、丸付き数字はUnicodeとして存在しますよ。
XMLを読み込むときの Encode が正しくないのでは? 私のところでは問題なく読み込めています。(ただし、私はSAXParserで読んでますが) | ||||
|
投稿日時: 2005-08-04 14:57
『yuzy』さん回答ありがとうございます。
エンコード指定は、「EUC-JP」です。 「Windows-31J」は、Windows固有の機種依存文字を含んでい るみたいです。 「EUC-JP」、「Shift_JIS」などは、機種依存文字との対応は とれていないみたいです。 | ||||
|
投稿日時: 2005-08-04 17:54
すみません、Unicodeにはたいがいの「いわゆる機種依存文字」は存在するようですね。
「エンコード指定」といってるのは、XML文書のですよね。だとすると、そのXML文書は どのように作成されたものですか? もしそれ以外の意味で「エンコード指定」といって いるのであれば、なんのことを指していますか? | ||||
|
投稿日時: 2005-08-04 18:19
「エンコード指定」は、XML文書中の宣言のことです。ファイル自身
も当然、EUCコードで作成されています。 機種依存文字以外は文字化けしていないので。 |
1