- 締切済み
ファイルの変換についての質問(iconv)
ファイルの文字コードを変換したいということですので、 ファイルの文字コードは、shift-jisからBomがつくUTF-8ファイルに変換 するつもりです。 現在使っているソフトは GNU の iconvです。 OSはWindowsXpです。 どうやってMS-DOSからファイルをBomが付くUTF-8のファイルにします? なんの設定する必要がありますか?
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- SAYKA
- ベストアンサー率34% (944/2776)
>詳しく話してくれませんか そこまでいくと 「こんなふうに(ソース掲載)してみたけどならなかった」くらいは書かないとまるなげあつかいになっちゃうよ? ヒント http://www.google.co.jp/search?q=%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E7%B5%90%E5%90%88&hl=ja&lr=lang_ja
- notnot
- ベストアンサー率47% (4900/10358)
>UTF-16 などの BOM を付けるエンコーディングに一旦変換しておいて, 再度 UTF-8 に変換すればいいみたいです. バージョンによるのかな。iconv (GNU libiconv 1.8) および iconv (GNU libiconv 1.9) だと駄目ですね。パイプだから駄目かと思い、リダイレクトでファイル経由にしても、BOMは消えちゃいます。 >BOM だけ別途用意しておいて先頭に付けるか. これが簡単でいいと思います。
補足
>BOM だけ別途用意しておいて先頭に付けるか. この方法だと、BOMを用意しておいて、どうやってファイルにいれるの? バッチとかの処理ですか? 詳しく話してくれませんか?
- Tacosan
- ベストアンサー率23% (3656/15482)
ちと試してみましたが, iconv で直接 UTF-8 にすると BOM が付きません. そりゃそうだわなぁ. しょうがないので, UTF-16 などの BOM を付けるエンコーディングに一旦変換しておいて, 再度 UTF-8 に変換すればいいみたいです. もしくは, BOM だけ別途用意しておいて先頭に付けるか.
- SAYKA
- ベストアンサー率34% (944/2776)
http://www.gnu.org/software/libiconv/documentation/libiconv/iconv.1.html 使える文字コードは「-l」で確認できるみたいだよ
- nda23
- ベストアンサー率54% (777/1415)
私ならScriptで作ります。 if( WScript.Arguments.length != 2 ) { WScript.Echo("Usage:conv source destination"); WScript.Quit(0); } var 変換元 = new ActiveXObject("ADODB.Stream"); 変換元.Open(); 変換元.Type = 2; 変換元.Charset = "shift_jis"; 変換元.LoadFromFile(WScript.Arguments(0)); var 変換先 = new ActiveXObject("ADODB.Stream"); 変換先.Open(); 変換先.Type = 2; 変換先.Charset = "utf-8"; 変換元.CopyTo(変換先); 変換先.SaveToFile(WScript.Arguments(1),2); 上記をconv.jsというファイルに保存し、コマンドラインから実行します。 conv JISファイル.txt UTF-8ファイル.txt
補足
返事がありがとう! Scriptかバッチかどっちでもいいかも、 使用するツールはiconvに限定されているから
- Tacosan
- ベストアンサー率23% (3656/15482)
いや, 単純に iconv を実行すればいいだけなんだけど, UTF-8 なのに BOM を付けようとする理由がわからん....
補足
UTF-8コードのファイルは、bomが付いているとないものがあるから。 ここで使用しているのは、bomがついているものです。
お礼
ありがとう! copyですね