- - PR -
改行コードの付け替え
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-12-11 16:09
XMLファイルから文章を読み込み、一旦javaのクラス内にString型として保持、最終的にSQL Serverに登録を行うという流れの処理を作成しています。 XMLファイルではShift-JISを指定しています。XMLファイル内で改行されていたものが、SQL Serverに登録された状態では改行されていないという問題が発生しました。 おそらく、改行コードがCR+LFでなくてはならないのにjavaでの処理においてLFになっているのではないかと考えていますが、どのように改行コードをCR+LFに修正するのがよいのでしょうか。教えてください。 どの時点で改行コードが変わってしまっているのかがわからないんです。javaで読み込ませるとエンコードがUnicode になると思うのですが、Shift-JISを指定したXMLから文字列を読み込んだ場合、その時点(読込み時)でUTF-8という扱いになるのでしょうか。 | ||||
|
投稿日時: 2003-12-11 17:15
XMLファイルの読み込みはどのように行っていますか?
もし、次のような読み込み方をしているなら、読み込まれたStringオブジェクトは 既に改行コードを含んでいません。
また、パーザーを使ってXMLを読んでいる場合も、読み込みの過程で 改行がなくなっている可能性があります。 どちらにせよ、読み込まれたStringに改行が含まれているか確認してください。 また、私は改行コードが文字コードの変更で置き換えられることは無いと思います。 Shift-JISでも、EUCでも、UnicodeでもCRは0x0d、LFは0x0aです。 | ||||
|
投稿日時: 2003-12-11 17:29
XMLの仕様によると、XMLプロセッサは改行を全て#xA(つまりLF)としてアプリケーションに渡す仕様となってます。
参考: http://www.fxis.co.jp/xmlcafe/tmp/rec-xml.html#sec-line-ends | ||||
|
投稿日時: 2003-12-11 17:30
XMLの読込みはパーサを使用しています。
SQL Serverに登録された時点で改行されていないというのは、SQL Serverから調べたいレコードをコピーしてテキストエディタで見た場合の話なんですが、メモ帳で開いた場合には改行されませんでした。しかし、その他秀丸などのエディタでは改行されているのが確認できました。 開くエディタによって改行される、されないが違ったので、改行コードが途中で変わってしまったのではないかと思ったのです。 改行コードはLFが入っているようです。(10進で10でした) | ||||
|
投稿日時: 2003-12-11 17:33
XMLからだとプラットフォームに関係なくLFとして渡されるということですか。
そうすると、XMLから読み込んだデータの改行コードをCR+LFにしたい場合はjavaの処理でCRを加えるという方法になるんでしょうか。 その場合はXMLから読み込んだデータをLFで1行と判断し、1行毎にCRを付けると言う方法ぐらいしか思いつきませんが・・ | ||||
|
投稿日時: 2003-12-11 18:03
javaのバージョンはいくつですか? 1.4なら、 String#replaceAll("\n","\r\n") ではどうでしょうか? | ||||
|
投稿日時: 2003-12-11 18:13
残念ながらjavaのバージョンは1.3なんです。
| ||||
|
投稿日時: 2003-12-12 08:43
Commons Lang の StringUtils#replace を使うというテもあります。
| ||||
