人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

大量のテキストにBOMを付ける方法を教えて下さい。

たくさんのテキストファイル(UTF-8)があるのですが、これにBOMを付ける必要が出てきました。
1つ1つなら方法はいくらでもあるのですが、何かいっぺんに付けられる良い方法はないでしょうか?

●質問者: x2pop
●カテゴリ:コンピュータ
✍キーワード:BOM UTF-8 テキスト ファイル
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● びびすけ
●1ポイント

http://tohoho.wakusei.ne.jp/wwwperl.htm

そのファイルは現在ありません

Perl や Ruby などのスクリプト言語でBOMを付加するフィルターを作成し、すべてのファイルをフィルターに食わせればいいと思います。

◎質問者からの返答

どんなものを作ればいいのか見当が付きません。

私のスキルでは、、


2 ● ozonepapa
●5ポイント

http://www.abc.com/

ABC.com

URLはダミーです。

OSがUNIXかLinuxであればBOMのファイルを作成しcatで連結してはどうでしょうか?

以下がbashで実行できるスクリプトのサンプルです。

/tmp/BOMファイルはあらかじめ作っておきます。

for f in ( * );

do

mv $f ${f}-

cat /tmp/BOM ${f}- > $f

rm -f ${f}-

done

◎質問者からの返答

申し訳ありません。WindowsXPです。

Windowsでもこの方法使えるのかな。

補足します。

当方WindowsXPで、

特定のフォルダの中のファイル全部(といっても拡張子は限定)にBOMを付けたい、ということです。


3 ● hmom
●5ポイント

http://ew.hitachi-system.co.jp/w/BOM.html

BOM 【Byte Order Mark】 | 情報の表現用語辞典

UTF-8でもBOMとしてFEFFを入れればよいようですね。

まずはFEFFがバイナリで入ったファイルを作っておきます。(BOM.dat)

UNIX系OSならcshやtcshを使って

foreach i ( *.txt )

cat BOM.dat $i > $i.new

mv $i.new $i

end

などで出来るかと。

◎質問者からの返答

最初からWIndowsと書いておけばよかったですね(汗)申し訳ない…。

どうしたものか、、


4 ● aki73ix
●10ポイント

http://nifberry.727.net/test/hatena32.lzh

とりあえず、作ってみました

◎質問者からの返答

おお、、すごい。。

世の中には凄い方がいらっしゃるものです…。

しかし、、変です。

試したところUTF-16になってしまい、激しい文字化けが、、

よく分からないのですが、エディターで作った物と比較したところ最初が違います。

EF BB がUTF-8

FF FE が今回のソフトで、UTF-16と認識されています。

それから、拡張子のことをちゃんと言わなかったのがいけないのですが、.txtだけなく、

.html .xhtml .log など色々あるので、(.txt と.htmlが一番多いのですが)…

なんだか贅沢を言っているようで…申し訳ありません。


5 ● aki73ix
●490ポイント

http://nifberry.727.net/test/hatena32a.lzh

>UTF-8でもBOMとしてFEFFを入れればよいようですね。

>試したところUTF-16になってしまい、激しい文字化けが、、

う、前の人の見て安心してしてしまいました(^-^;

>EF BB がUTF-8

あれ? EF BB BF ではないですか?

とりあえず改良してみました

とりあえず、3回目は回答できないので

以後はいわしにでも・・・

◎質問者からの返答

すばらしい! 完璧です。

ありがとうございました。本当に感謝です。

BOMや、UTF(7/8/16/32.. BE LE)などは複雑なようなので、、

私が書いたのは、秀丸で保存した場合です。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ