2013年6月29日土曜日

http://d.hatena.ne.jp/rx7/20100407/p1



Apacheで「Invalid command '\xef\xbb\xbf'」(UTF-8ファイルからBOMを削除)Add Star


とある環境で、いただいたApacheの設定ファイルを配置し、configtestを行うと、以下のエラーが出た。
Invalid command '\xef\xbb\xbf', perhaps misspelled or defined by a module not included in the server configuration
ファイルの文字コードは、UTF8でしたが、"EF BB BF"は「BOM」と呼ばれる、テキストがUnicodeで書かれているか、や、記述形式の識別を行うための符号らしい。
(恥ずかしながら初めて知った。)
■BOM (Byte Order Mark, バイト・オーダー・マーク)
UnicodeのUTF-16などの16bit単位の文字エンコーディングスキームでは、8bit単位でデータを配列する際のエンディアンと して、ビッグエンディアンとリトルエンディアンの両方を許している。そのため、どちらのエンディアンで記述されたデータかを確実に判定するための特別な マークとなる符号として、BOM(Byte Order Mark)が用意されている。
またBOMは、あるテキストがUnicodeで記述されているかどうかを自動判定する手段として使用される場合もある。この目的に使用される場合は、エンディアンが存在するUTF-16だけでなく、エンディアンが存在しないUTF-8のテキストに付加される場合もある。
XML用語事典 [BOM (Byte Order Mark)]

vimで、このBOMを除去する

:set nobomb
:w
こんな感じで、BOMを消してから保存します。
これだけ。

nkfでも出来そう

"man nkf"を眺めていると、OPTIONSのところに以下の記述があります。
-w -w8[0] -w16[BL][0]
    Unicode を出力する。

    -w -w80
        UTF8 コードを出力する。 (BOM 無し)

    -w8 UTF8 コードを出力する。

    -w16 -w16B0
        UTF16 コードを出力する。 (Big Endian / BOM 無し)

    -w16B
        UTF16 コードを出力する。 (Big Endian / BOM 有り)

    -w16L
        UTF16 コードを出力する。 (Little Endian / BOM 有り)

    -w16L0
        UTF16 コードを出力する。 (Little Endian / BOM 無し)
nkfコマンドで、上記オプションを付けて出力してやれば良さそうです。

2013年6月12日水曜日

 HKT48に移籍した指原は、自ら後進の指導にあたり、それを自らの役目とした。「財を残すは下、仕事を残すは中、人を残すを上とする」と語る名監督・野村克也氏ばりのプレイングマネジャーとして活躍。HKT48メンバーを大島優子らAKB48メンバーに紹介して交流させたほか、「スキ!スキ!スキップ!」の表題曲選抜に入れなかったチームH最年少12歳の田中菜津美の“ボスキャラ”を発見して世に広め、SKE48終身名誉研究生・松村香織のソロデビューのプロデュースを行うなど、「指原再生工場」とでも呼ぶべき後輩の人材育成にもまい進してきた。移籍という“椿事”すらも笑いに変えて、タモリ、明石家さんま、ビートたけしのお笑いBIG3からもそれぞれ大いにイジられるという、めげない姿勢も、支持率上昇の要因だろう。




 「知るを楽しむ」の野村克也監督の特集で、印象に残ったのが次の言葉。  財を遺すは下、事業を遺すは中、人を遺すは上なり これは後藤新平の言葉で、次のように続くそうだ。  財を遺すは下、事業を遺すは中、人を遺すは上なり、  されど、財なくんば事業保ち難く、事業なくんば人育ち難し 後藤新平が倒れる日に三島通陽に残した言葉は、次のようなものだったという。  よく聞け、金を残して死ぬ者は下だ。仕事を残して死ぬ者は中だ。  人を残して死ぬ者は上だ。よく覚えておけ。