質問 |
||
| 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がついているものです。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |