address Logo

漢字コード

目次

今日のコンピュータは日本の文字をあつかえるようになっている。しかし時々文字化けが発生して内容が読めない場合もある。ここではその舞台裏を見ることにする。

fig6

左は文字化け、右が正しい

文字化けの原因

しょうがないですか?

観察してみよう

次の部分は画像として送られている

fig7

画像情報は解釈のルールが確立しているので正しく読みとれる
数字の部分も概して正しく読みとれていることに注意する。英字や数字など ASCII 文字は異なる解釈の余地はないので、混乱はないのである。
問題は日本語の文字である。

どれだけの解釈のルールがありますか?

現在、インターネットで使用されている日本語文字のコードの解釈には4つある

エンコーディング システム メモ
JIS 漢字コード 汎用機で発展 正確には iso-2022-jp
シフト JIS パソコンで発展 あるいは MS-Kanji コード
日本語 EUC UNIX で発展 ujis とも言う
UTF-8 国際標準 ユニコードをネットワークに適合するように変形

同じ文字を表すのに、これらの間で使用するコードが異なる。例えば、

文字 JIS SHIFT JIS EUC UTF-8
2422 82A0 A4A2 E38182
3026 88A4 B0A6 E6849B
3126 8940 B1A6 E58FB3

文字コードの違い。16進数でコードが表されている

情報の送り手と受け手が異なるコードの解釈をするために問題が発生する。たいていの Web のブラウザは、文字が化けた場合の対策として、幾つかの可能性を試せるようになっている。例えば、

fig8

自動判別(自動選択)がありますが?

JIS は特徴があるので受ける側が判別しやすい。しかし残りはよく似ているので、解釈を間違えることがある。

使用している文字コードを知らせる仕組みがあればよいのではないですか?

そのとおりだ。そして実際にその仕組みは存在する。しかしそれを使用しない Web のサイトがあり、その場合には文字化けが発生することがある。

viewsource

Opera(この講義で使用しているブラウザ)のメニュー

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>漢字コード</title>

文字セット

注意: ここに述べた文字の個数は固定的ではない。改訂によって変化する。

エンコーディング

コード化の方法。日本語の漢字を扱える文字のエンコーディングには以下の5つが存在する。

ISO(International Standardization Organization、国際標準化機構 http://www.iso.org )

いずれも漢字だけではなく以下の文字を扱うことができる。

コメント

例: 愛

エンコーディング コード(16進) コード(2進)
JIS 30 26 00110000 00100110
EUC B0 A6 10110000 10100110

受講者からの質問

参考 URL