文字コードとUNICODE

ホームページのトップに戻る目次

文字コードの種類

文字コードとフォントの関係(例)

文字コードの種類

 コンピュータの世界では、「文字ひとつずつ」に対応した「文字コード」が存在していて、ファイルに保存したり、コンピュータが処理する場合は、文字そのものではなく、「文字コード」を使います。
 文字を画面に表示したり、印刷する場合は、その「文字コード」に対応した「画像(フォント)」を引っ張ってきて、表示するわけです。

 文字コードで厄介なのは、文字に対応した「文字コード」に、いくつもの種類があることです。
 代表的な文字コードを、下の表にまとめました。
文字コード名説明
1ASCII1バイト・パソコンの標準
2EBCDICIBM社の大型機械の標準
3EUCUNIXマシンの標準
4JISコードJIS(日本工業規格)で標準化
5シフトJIS日本語WindowsやMac OSなどで使われる
6Unicode全世界の、全ての文字を区分できる。
日本語文字を、
3バイトで表現するもの(UTF8)と、
2バイトで表現するもの(UTF16)(リトル・エンディアンとビッグ・エンディアンに分かれる)
、の3種類の標準が存在

 The Web KANZAKI
 日本語と文字コード
http://www.kanzaki.com/docs/jcode.html

 例えば、「掴む」の旧字(てへんで右の作りは、国の旧字体で、或を国囲みで囲った漢字)使用すると、正しく表示されない場合が有ります。
 この漢字は第3水準の漢字で、シフトJISのコードが存在しないため、シフトJISしか扱えないソフトでは、「?」になってしまうのです。

 TrickPalace
 character code
http://www.trickpalace.net/data/charcode/
http://www.trickpalace.net/data/charcode/jisx0212.htm

 JIS X 0212 (補助漢字) の文字コード表

JIS表示HTMLUNICODE
0x405B摑0x6451

 10進、16進文字コードin HTMLユニコード
http://code.cside.com/3rdpage/jp/unicode/converter.html
 文字(漢字)を入力して「変換する」ボタンを押すと、ユニコードのコードを表示してくれます。

 UNICODE とは:
http://www.unicode.org/unicode/standard/translations/japanese.html
http://mikeneko.creator.club.ne.jp/~lab/kcode/unicode.html

 BOM (Byte Order Mark) とは:
 2バイト(16bit単位)のユニコード(UTF-16)では、8bit単位でデータを配列する際の順序として、ビッグエンディアンとリトルエンディアンの両方が有ります。このため、どちらのエンディアンで記述されたデータかを判定するための符号として、BOM(Byte Order Mark)が使われます。
 3バイトのユニコード(UTF-8)では、ビッグエンディアンとリトルエンディアンの区分が無いため、BOMを付与する必要は有りません。
 しかし、UTF-8符号化でも、ユニコードであることを明示的に示す目的だけのために、BOM を付ける人がいます。そして、日本国内では、バイト順マーク (BOM) が付いているものを UTF-8、付いていないものを UTF-8N として区別する場合があります。この表記方法は、国際的に認知されたものでは、ありません。
http://www.atmarkit.co.jp/aig/01xml/bom.html


 使いこなそうユニコード
http://homepage1.nifty.com/nomenclator/unicode/

 Unicode Code Charts
(PDFファイルで、各種文字の表示を見ることができます。)
http://www.unicode.org/charts/

 文字コードについて:
http://ash.jp/code/
http://code.cside.com/3rdpage/jp/ 3rdpageSearch Jp

 Windows 98/2000上でのUTF-8のページの作り方
http://homepage2.nifty.com/hobbit/html/utf8.html

 多国語 HTML (UTF-8) の作り方
http://mlang1.osaka-gaidai.ac.jp/multi/how_to_utf8.html
注:UTF-8とは、8-bit Universal Character Set Transformation Format の略です。
(Transformation Format:エンコーディング法。詳しくは下のURLを参照下さい。
http://mikeneko.creator.club.ne.jp/~lab/kcode/uni-encode.html)

 TRANS CHINESE
http://www.ctrans.org/

 日本語・中国語混在のホームページのサンプル。

 URLエンコード・デコードフォーム
 http://www.tagindex.com/tool/url.html
%82%A0%82%A2%82%A4%82%A6%82%A8
を、デコードしてみましょう。


文字コードとフォントの関係(例)


異体字の表示方法は、「漢字異体字の入力方法」も参照下さい。
フォント 日本漢字 辺 旧字辺 真 旧字真 平 羽 鄧 a
中国漢字 中国辺 旧字辺 真 平 羽 鄧 鄧 a
台湾漢字 旧字辺 旧字真 平
羽


a
文字コード S-JIS95D3E7B2905EE1C195BD8948 FBB9(漢字3) 61
GBB1DFDF85D5E6C6BDD3F0 E087 B5CB 61
UnicodeBA8FB98F8A901F771E77735EBD7F 2791 9390 6100
UTF-8E8BEBAE8BEB9E9828AE79C9FE79C9EE5B9B3E7BEBD E984A7 E98293 61
 Windows でいう Unicode テキストは、リトルエンディアンの UTF-16 です。
 (ビッグエンディアンとリトルエンディアンという区分は、2Byteの前後の並べ方の方式を言いますが、この単語は、ジョナサン・スウィフトの風刺小説ガリバー旅行記の中のエピソードに由来します。ガリバー旅行記の第1部「小人国」では、卵を丸い方(大きい方)の端から割る人々(Big Endians)と尖った方(小さい方)の端から割る人々(Little Endians)との対立が描かれています。ガリバー旅行記は、青空文庫ここで読めます。)

2バイトでは、下記の数が区分できます。
2Byte = 256^2 = (2^8)^2 = 2^16 = 65,536


 世界の全ての文字を表現するには、16bit(65,535文字)では足りないため、場合によっては、32bitを使って文字を表現する可変長の、サロゲート(sarrogate)方式が、Unicode 2.0 から導入されました。
 サロゲート(surrogates)とは、16bitの領域(65,535)に2048個の空間(D800~DFFF )を予約し、さらにその2048個のコードを上位用1024個と下位用1024個に分けて上位+下位の32bit(4バイト)コードで1文字を表します。つまり理論上1024×1024の100万を超える文字を扱うことができます。

 参考:IVS(Ideographic Variation Sequence)
http://itpro.nikkeibp.co.jp/article/COLUMN/20100126/343783/
http://ja.wikipedia.org/wiki/%E7%95%B0%E4%BD%93%E5%AD%97%E3%82%BB%E3%83%AC%E3%82%AF%E3%82%BF

1991年 - Unicode 1.0
1996年 - Unicode 2.0 UTF-8
2000年 - Unicode 3.0
2002年 - Unicode 3.2 JIS X 0213正式対応(70,195の漢字が利用可能)
2003年 - Unicode 4.0
2006年 - Unicode 5.0 バリ文字、フェニキア文字、楔形文字 など追加
2010年 - Unicode 6.0 携帯電話の絵文字
2014年 - Unicode 7.0 約250字の絵文字の追加
2015年 - Unicode 8.0
2016年 - Unicode 9.0 絵文字の追加、4KTV放送用シンボル追加


UTF-8エンコード方式は可変長で、英数記号のASCIIコード128文字(U+0000~U+007F)は、1バイトで表して、0x0800から0xFFFFまでのマルチバイト文字は、3バイトで表します。16補足プレーンの1,048,576文字は、4バイトでエンコードされます。

3バイトでは、下記の数が区分できます。
3Byte = 256^3 = (2^8)^3 = 16^6 = 16,777,216
2^10 ≒ 1000 ( 10 log2 ≒ 3.01 ≒ 3 = log1000 ) を使って、下のように概算もできます。
(2^8)^3 = 2^24 = 2^4*2^20 = 16,000,000

 Unicodeは、1,000,000 (百万文字)を取り扱うことができるため、「世界中の文字を取扱うことができる」と考えられます。

 中国の国家標準 GB2312 は6,763字、2003年3月に制定された新規格 GB18030 は、27,484字。

 康煕字典4万7千:中国の清の康煕帝が編纂させた辞書(1716年)
 中華字海8万5千:中国の最大の字典(1994年)
 高電社の ChineseWriter7~ は、 GB18030 に対応しています。欲しいな (^^ゞ

 日本のJISX0208 は、漢字・非漢字6,879字を規定。(うち漢字は第一水準2,965字,第二水準3,390字の計6,355字。)
 後継規格として、2000年にJIS X 0213:2000 (JIS2000) が制定され、第3水準1,908字、第4水準2,436字 計4,344字が追加された。これで、基本漢字とあわせて、漢字10,040、非漢字1,183
 2004年には、JIS X 0213:2004 (JIS2004) として、第3水準に10文字追加と、第1水準・第2水準の内の168文字の例示字形の変更がありました。
http://www.jisc.go.jp/newstopics/2005/040220kanjicode.pdf
 Windows Vista には JIS2004 に対応したフォントが同梱されているので、対応するアプリケーションでは、JIS2004 の文字が使えます。

 教育漢字1,006:小学校で習う漢字
 常用漢字1,945:一般の社会生活で用いる漢字の目安(教育漢字を含む)
 人名用漢字284:常用漢字外で人名として戸籍登録に使用できる
 大漢和辞典51,053:日本の最大の漢和辞典(修訂2版1990年)
 フォントについては、「多書体フォント」も参照下さい。


 世界の文字←興味深いホームページです
http://www.nacos.com/moji/
http://www.geocities.jp/p451640/moji/ 世界の文字で遊ぼう


この種類の目次に戻る↑ トップページに戻る

ホームページのトップに戻る