- PR -

ローム数字が文字化け

1
投稿者投稿内容
T.S
会議室デビュー日: 2005/08/03
投稿数: 5
お住まい・勤務地: 大阪
投稿日時: 2005-08-03 16:19
Javaでローマ数字『T』の設定されたXML文書をパースすると
メモリ上でローマ数字が文字化けします。

【例】
<element id="accident">T.問題</element>
^^
上記の下線部分がXML文書からDOMに展開後、メモリ上で文字
化けします。
あと、『@A』などの文字も化けます。

どなたか、解決策を教えて下さい。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-08-04 12:21
それらの字は俗に「機種依存文字」と呼ばれるもので、特定の文字エンコーディングにしか
存在しない文字です。Javaではすべての文字列はUnicodeとして扱われますが、Unicodeには
それらの文字が存在しないために扱うことができません。

一番の解決策は、複数の文字エンコーディングが介在する環境ではこれらの機種依存文字を
使わないことです。
yuzy
大ベテラン
会議室デビュー日: 2002/02/14
投稿数: 117
投稿日時: 2005-08-04 13:49
ローマ数字の1や、丸付き数字はUnicodeとして存在しますよ。

XMLを読み込むときの Encode が正しくないのでは?
私のところでは問題なく読み込めています。(ただし、私はSAXParserで読んでますが)
T.S
会議室デビュー日: 2005/08/03
投稿数: 5
お住まい・勤務地: 大阪
投稿日時: 2005-08-04 14:57
『yuzy』さん回答ありがとうございます。

エンコード指定は、「EUC-JP」です。

「Windows-31J」は、Windows固有の機種依存文字を含んでい
るみたいです。
「EUC-JP」、「Shift_JIS」などは、機種依存文字との対応は
とれていないみたいです。

uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-08-04 17:54
すみません、Unicodeにはたいがいの「いわゆる機種依存文字」は存在するようですね。

引用:

T.Sさんの書き込み (2005-08-04 14:57) より:
エンコード指定は、「EUC-JP」です。


「エンコード指定」といってるのは、XML文書のですよね。だとすると、そのXML文書は
どのように作成されたものですか? もしそれ以外の意味で「エンコード指定」といって
いるのであれば、なんのことを指していますか?
T.S
会議室デビュー日: 2005/08/03
投稿数: 5
お住まい・勤務地: 大阪
投稿日時: 2005-08-04 18:19
「エンコード指定」は、XML文書中の宣言のことです。ファイル自身
も当然、EUCコードで作成されています。

機種依存文字以外は文字化けしていないので。



1

スキルアップ/キャリアアップ(JOB@IT)