- PR -

SAXを使ってXMLをパースする際、XMLドキュメントのエンコーディングを取得したい

1
投稿者投稿内容
m.hosoi
会議室デビュー日: 2002/10/10
投稿数: 13
お住まい・勤務地: 東京
投稿日時: 2003-06-11 09:29
SAXを使ってXMLをパースする際、
XMLドキュメントのエンコーディングを取得したいのですが、
方法がわかりません。どなたかご教授ください。よろしくお願いします。

[環境]
j2sdk1.4.1_03
xerces-2.0.1
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-06-28 01:07
私も知りたいので age。

もしかしてと、InputSourceを使用してパーズした後 getEncoding()とか
やってみたけど、駄目だった。
setEncoding()した値しか取り出せないよう。

最後はソース読むしかないか?
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2003-06-28 01:43
> SAXを使ってXMLをパースする際、
> XMLドキュメントのエンコーディングを取得したいのですが、
> 方法がわかりません。どなたかご教授ください。よろしくお願いします。
>
文字エンコーディングの情報を取得しないといけない理由でもあるのですか?
もちろん、XMLドキュメントの読込自体が失敗するわけではないですよね。
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-06-28 03:18
ただ読込んで処理するだけならエンコーディングは何でもいいです。

しかし、加工編集後に元のエンコーディングのまま保存したいこと
があります。
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2003-06-28 06:30
> しかし、加工編集後に元のエンコーディングのまま保存したいこと
> があります。
>
最低限、UTF-8で保存できれば、安全かなぁと思いますけど...

例えば、読み込んだ文書に対し、入力時の文字エンコーディングでサポートされていない文字が加工されていたとしたら、
UTF-8を出力エンコーディングに指定しない限り、その文字は化けた状態でシリアライズされますよね。

出力エンコーディングを指定する場所を提供し、まったく指定がないならUTF-8をデフォルトとするのがベストでしょう。

[ メッセージ編集済み 編集者: SuperCreek 編集日時 2003-06-28 06:31 ]
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-06-28 13:03
引用:

例えば、読み込んだ文書に対し、入力時の文字エンコーディングでサポートされていない文字が加工されていたとしたら、


そう、それも汎用的なクラスを作るときの悩みの種です。
しかし現在の業務上は使用される文字がある程度限定されていますので、
まだ問題にはなって居りません。

引用:

出力エンコーディングを指定する場所を提供し、まったく指定がないならUTF-8をデフォルトとするのがベストでしょう。


ええ、その考え方には全く賛成ですし、私はいつもそのようにしてます。

しかし、ユーザさんによっては UTF-8でないコードを使用してる人が多いのです。
処理系としては UTF-8/16は保障されてると思いますが、編集するときには現状で
はテキストエディタを使用している人も多いですから。

あの人に送り返すときは Shift_JISで、この人は EUC-JPってやってるうちに、
うっかり UTF-8のまま保存してしまって、よく「文字化けしてるんですけど。」
って連絡が来るんですよ。
だからせめて、相手から受け取ったファイルを編集したときくらいは元のままに
してあげたいな、と。

[ メッセージ編集済み 編集者: Kissinger 編集日時 2003-06-28 13:05 ]

[ メッセージ編集済み 編集者: Kissinger 編集日時 2003-06-28 13:08 ]
1

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