
こんばんわyukimura1024です。
JavaでXMLファイルを読み込み、それをもとに別のXMLファイルを作って出力するプログラムを作っています。
環境はWinXPsp2、JDK1.4.2_08でeclipseを使ってます。
現象なのですが、以下のようなソースでtest.xmlを読み込もうとすると、ファイル内に2バイト文字があるときだけ、
org.xml.sax.SAXParseException:文字変換エラー:"Uniconvertible UTF-8 character beginning with 0x83"(行番号が小さすぎる可能性があります)
というエラーが出てしまいます。
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream("test.xml")); //←ここでエラー
ネットで調べて「ヘッダ部で指定したエンコーディング名と、実際のXMLファイルの文字コードが異なっていないかを確認してください。XMLファイルをシフトJISで保存しているのであれば、ヘッダ部には<?xml version="1.0" encoding="Shift_JIS"?>といった指定を行う必要があります。」というのを見つけて試してみましたがうまくいきません。
とにかく2バイト文字が含まれているとエラーが出てしまいます(TT
このエラーが出ないようにするには、どうしたらよいででしょうか?
ご存知の方、教えていただけると助かります!よろしくお願いします。
No.1ベストアンサー
- 回答日時:
>試してみましたがうまくいきません
ここまで書いたんですから、試した内容も一緒に載せましょう。
・ファイルのエンコーディングは確かにShift_JISですか?どうやって確認しましたか?
・追加したXML宣言の内容はどういったものを追加したのか貼り付けてみてください
>とにかく2バイト文字が含まれているとエラーが出てしまいます
・発生した例外のスタックトレースの内容も同じく貼り付けてください
この回答への補足
回答ありがとうございます。
最初に書いた現象は別の場所の別マシンで試したもので、
今、家の環境(WinXPsp2+JDK1.5+Eclipse3.1)で試してみたのですが、
エラーが起きないという、まったく逆の結果になってしまいました。
とりあえず、最初の現象(エラー)が起きたときは以下のような状況でした。
>ここまで書いたんですから、試した内容も一緒に載せましょう。
試した内容はXMLファイルの中に全角文字を書いたものと書かないもの
を用意して両方試してみました。
>ファイルのエンコーディングは確かにShift_JISですか?どうやって確認しましたか?
ファイルのエンコーディングは秀丸でメニューから「ファイル」→「名前をつけて保存」
と選んでファイルの種類に「日本語(Shift-JIS)」を選んで保存しました。
>追加したXML宣言の内容はどういったものを追加したのか貼り付けてみてください
XMLファイルは(1)だとエラーにならず、(2)だとエラーになります。
(うろ覚えです)
(1)
<?xml version="1.0" encoding="Shift_JIS" ?>
<jam>
<java name="helloworld.java">
<import module="aiueo"/>
</java>
</jam>
(2)
<?xml version="1.0" encoding="Shift_JIS" ?>
<jam>
<java name="helloworld.java">
<import module="あいうえお"/>
</java>
</jam>
>発生した例外のスタックトレースの内容も同じく貼り付けてください
すみません。スタックトレースは今はちょっと再現できないので貼り付けられません。
家で試したらエラーが起きないのでかなり焦ってます(^-^;
明日またエラーの出た環境でいろいろ試してみます。
原因がわかりました。
原因はXMLファイルの先頭行にコメント?があってそれを消したらエラーにならなくなりました。
よく確認せずに質問してしまって申し訳ありません(TT
回答していただきありがとうございました(^^
こんな感じでした↓
<!-- java___nantara... -->
<?xml version="1.0" encoding="Shift_JIS" ?>
<jam>
<java name="helloworld.java">
<import module="あいうえお"/>
</java>
</jam>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- WordPress(ワードプレス) ワードプレスにて .xmlファイルの使い方をご存知の方、よろしくお願いいたします。 2 2022/09/30 00:55
- その他(IT・Webサービス) 見たことのない形式で日付が表示されているのでそれを解析してほしい 3 2023/01/23 16:53
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- アプリ おすすめのパスワード管理アプリを教えてください。(iOSとWindows対応) 4 2023/01/19 02:08
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
エラー:org.springframeworkが...
-
タグが閉じてないというエラー...
-
tomcat起動時エラー
-
getParameterについて
-
java Eclipse プロジェクト名前...
-
eclipseで再コンパイルしたら動...
-
構文エラーのやり直しについて
-
Java
-
入力された文字がIPアドレスか...
-
Javaのエラーについてです
-
eclipseをバージョンアップした...
-
Vアプリ作成時のエラーについて
-
JSPで意味不明のコンパイルエラー
-
シンボルが見つかりませんとい...
-
Eclipse WTP、Strutsについて
-
JAVAでアルファベットを数...
-
最大オープン・カーソル数のエラー
-
演算子*はjava.lang.String.dou...
-
JSPのIF文を教えて下さい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
エラー:org.springframeworkが...
-
コンパイル時にエラーが出てし...
-
eclipseをバージョンアップした...
-
tomcat起動時エラー
-
構文エラーのやり直しについて
-
タグが閉じてないというエラー...
-
Eclipse デバッグ エラー処理
-
Javaのエラーについてです
-
eclipseでのsvn認証エラー回避方法
-
Eclipseの環境について
-
シンボルが見つかりませんとい...
-
java eclipse apache tomcat 9....
-
java エラー
-
【ジェネリックス】コンパイル...
-
eclipseのエラーについて質問で...
-
BufferdReaderが見つからない?
-
javamailにて連続送信の際のエラー
-
拡張子 class ファイルを開きた...
-
JSP NullPointerException
おすすめ情報