dポイントプレゼントキャンペーン実施中!

ファイルの文字コードを変換したいということですので、
ファイルの文字コードは、shift-jisからBomがつくUTF-8ファイルに変換
するつもりです。
現在使っているソフトは GNU の iconvです。
OSはWindowsXpです。

どうやってMS-DOSからファイルをBomが付くUTF-8のファイルにします?
なんの設定する必要がありますか?

A 回答 (6件)

>詳しく話してくれませんか


そこまでいくと
「こんなふうに(ソース掲載)してみたけどならなかった」くらいは書かないとまるなげあつかいになっちゃうよ?

ヒント
http://www.google.co.jp/search?q=%E3%82%B7%E3%82 …
    • good
    • 0
この回答へのお礼

ありがとう!

copyですね

お礼日時:2008/05/16 18:24

>UTF-16 などの BOM を付けるエンコーディングに一旦変換しておいて, 再度 UTF-8 に変換すればいいみたいです.



バージョンによるのかな。iconv (GNU libiconv 1.8) および iconv (GNU libiconv 1.9) だと駄目ですね。パイプだから駄目かと思い、リダイレクトでファイル経由にしても、BOMは消えちゃいます。

>BOM だけ別途用意しておいて先頭に付けるか.

これが簡単でいいと思います。

この回答への補足

>BOM だけ別途用意しておいて先頭に付けるか.

この方法だと、BOMを用意しておいて、どうやってファイルにいれるの?
バッチとかの処理ですか?

詳しく話してくれませんか?

補足日時:2008/05/16 14:16
    • good
    • 0

ちと試してみましたが, iconv で直接 UTF-8 にすると BOM が付きません. そりゃそうだわなぁ.


しょうがないので, UTF-16 などの BOM を付けるエンコーディングに一旦変換しておいて, 再度 UTF-8 に変換すればいいみたいです.
もしくは, BOM だけ別途用意しておいて先頭に付けるか.
    • good
    • 0

http://www.gnu.org/software/libiconv/documentati …
使える文字コードは「-l」で確認できるみたいだよ
    • good
    • 0

私なら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に限定されているから

補足日時:2008/05/15 16:46
    • good
    • 0

いや, 単純に iconv を実行すればいいだけなんだけど, UTF-8 なのに BOM を付けようとする理由がわからん....

この回答への補足

UTF-8コードのファイルは、bomが付いているとないものがあるから。
ここで使用しているのは、bomがついているものです。

補足日時:2008/05/15 16:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!