PCスキル - 文字コードをもうちょっと意識する
★★
昨年12月に文字コードについての記事を書き、先日はJammingのユーザー辞書に関連して、また文字コードが問題になりました(side A)。
※越前先生のブログでも文字コードのことが加筆され、拙ブログについても言及いただきました。ありがとうございます。
そこで、前回に続いて、文字コードのことをもう少し書いておこうと思います。
まず、実務的に文字コードの変換の話から。
文字コードを変換するいちばん簡単な方法は、テキストエディタで「名前を付けて保存」の機能を使い、文字コード指定のオプションを使うというパターンです。
Windows標準のメモ帳の場合:
秀丸エディタの場合:
用意されている保存オプションは違いますが、先日の「英和翻訳基本辞典」のJamming用データの場合は、上のスクリーンショットのように、ANSI(メモ帳の場合)かShift-JIS(秀丸エディタの場合)で保存します。ANSIとShift-JISというのは、だいたい同じものです。
テキストエディタではなく、文字コードを変換するという機能に特化したユーティリティソフトウェアもいろいろ出回っています。特に、複数のファイルの文字コードを一括して変換するときは、こっちが便利です。
リンク: Vector:ダウンロード Windows > ユーティリティ > テキストファイル用 > テキスト変換 > 文字コード変換
などでフリーウェアを試してみるといいと思います。ちなみに私は、上のVectorにも載っている
KanjiTranslator 1.6
というのを使ってます。複数ファイルをドラッグアンドドロップで変換できて実にお手軽。
■
文字コードの話をするためには、どうしてもテキストファイルの扱いについて触れておく必要があります。
テキストファイルというのは、簡単に言うと
文字(記号も含む)のデータだけ含むファイル
のことです。ためしに、
・メモ帳で「abc」の3文字を入力したファイル
・Wordで「abc」の3文字を入力したファイル
を作って、ファイルのサイズを確認してみましょう(ファイルを右クリックして[プロパティ]を選ぶ)。
上のショットがテキストファイル。3文字のデータで、サイズは3バイトです。
下のショットはdocファイル。同じく3文字のデータですが、サイズは24,064バイト。ほぼ8,000倍です。テキストファイルと違って書式情報とかいろんなデータが追加されてこんなことになります(ちなみに、Word2010のdocx形式だと、13,717バイト。だいぶ小さくなったようです)。
■
これでわかるように、abcのようなアルファベットは、それぞれ1バイトつまり8ビットの情報量で表現できちゃいます。8ビットで表せるデータは256種類しかありませんが、アルファベットの大小文字(26 x 2個)、数字(10個)、その他の記号を使っても、これで十分です。ちなみに2進法で表すと、
小文字のa = 0110 0001
大文字のA = 0100 0001
です。コンピュータ上で文字を表そうとしたとき、基本になったのは、当たり前ですがこのようにごく単純な英数字(alphanumeric)でした。
でも、世の中には、狭義のアルファベット(厳密に言うとラテン文字)以外の文字がたーくさんあるわけで、同じヨーロッパでも、広義のアルファベットであるギリシア文字やキリル文字、アジアには漢字やひらがな、カタカナがあって、256種類ではどうしたって対応できなくなります。
そこで、2バイトとか3バイトとか、もっと多くの情報量を使って文字データを表す仕組みが生まれます(2バイトなら65536種類)。
そういう、コンピュータ上のデータで文字を表す仕組み(バイト表現)というか、バイト表現と文字の対応の体系のことを、「文字コード」と呼びます。
上述した、1バイトで英数字を表すいちばん単純な文字コードがASCII。
日本語を2バイトで表す文字コードが、おなじみのShift-JIS。
日本語とかキリル文字、さらにいろいろな特殊文字をぜーんぶ統一的な体系にしようとしているのがUnicodeです。
さっきと同じよう単純な文字だけのファイルを作ってみました。
「あいう」の3文字を、Shift-JISで保存したファイル:
同じく「あいう」の3文字を、UTF-8で保存したファイル:
「あいう」の3文字を、UTF-16で保存したファイル:
UTF-8とUTF-16の違いとか、Unicodeの専門的な話は私の力量を超えていますが、それぞれバイト数が違うところに注目してください。
■
ファイルを開いたとき、いわゆる「文字化け」が起こる原因は、ほとんどの場合この文字コードの違いです。翻訳作業のときよく遭遇するのは、種類の違うダッシュ(– —)とか、
©
®
のような文字を含んだファイルですね。これをShift-JISで保存しようとすると、たとえば秀丸エディタであれば、
という警告が出て、そのままあえてShift-JISで保存すると、特殊記号は ? などに化けてしまいます。
今回のJammingの話でもわかったように、テキストデータの保存、インポート/エクスポートという操作が関係するときも、文字コードが原因で不具合が起きることはよくあります。
そんなわけで、文字コードのことは、専門的に詳しく知らなくてもいいのですが、ちょっと意識しておくと何かの問題解決に役立つかもしれない、というお話でした。
この記事へのコメントは終了しました。
コメント
ksさん、たいへん遅くなりましたが、MultiTermエラーに関する情報ありがとうございます。今後もこの情報は必要になりそうです。
投稿: baldhatter | 2014/02/14 12:26:56