ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

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

どうやってMS-DOSからファイルをBomが付くUTF-8のファイルにします?
なんの設定する必要がありますか?
困り度:
  • すぐに回答を!
質問投稿日時:
08/05/15 15:32
この質問に対する回答は締め切られました。
最新から表示回答順に表示

回答

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

ヒント
http://www.google.co.jp/search?q=%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%...
回答者:SAYKA
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/05/16 15:05
この回答へのお礼ありがとう!

copyですね

回答

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

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

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

これが簡単でいいと思います。
回答者:notnot
種類:アドバイス
どんな人:一般人
自信:自信あり
回答日時:
08/05/16 01:09
この回答への補足>BOM だけ別途用意しておいて先頭に付けるか.

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

詳しく話してくれませんか?
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.4 ちと試してみましたが, iconv で直接 UTF-8 にすると BOM が付きません. そりゃそうだわなぁ.
しょうがないので, UTF-16 などの BOM を付けるエンコーディングに一旦変換しておいて, 再度 UTF-8 に変換すればいいみたいです.
もしくは, BOM だけ別途用意しておいて先頭に付けるか.
回答者:Tacosan
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/05/15 20:55
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.3 http://www.gnu.org/software/libiconv/documentation/libiconv/iconv.1...
使える文字コードは「-l」で確認できるみたいだよ
回答者:SAYKA
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/05/15 18:18
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.2 私なら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
回答者:nda23
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:
08/05/15 16:42
この回答への補足返事がありがとう!

Scriptかバッチかどっちでもいいかも、
使用するツールはiconvに限定されているから
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

ANo.1 いや, 単純に iconv を実行すればいいだけなんだけど, UTF-8 なのに BOM を付けようとする理由がわからん....
回答者:Tacosan
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:
08/05/15 16:33
この回答への補足UTF-8コードのファイルは、bomが付いているとないものがあるから。
ここで使用しているのは、bomがついているものです。
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示