Team TripleFalcon. http://www.triplefalcon.com/

概要

 計算機で文字情報を扱う場合、何らかの数値に置き換えるしかありません。文字の数値表現を文字コードと呼びます。英アルファベットの場合、ASCIIコードが有名です。それ以外のどのコードも英文字はASCIIコードとの対応を取るようです。

 近年は、世界中の様々な文化の文字を取り込んで世界的に標準化が進められている Unicode という文字体系も在ります。

 日本では、国内標準漢字コードとして JIS漢字コードが定められています。しかしながら、JIS漢字コードは計算機上にASCIIコードと混在させると見分けがつかなくなる文字があります。値が重なっているからです。ASCIIとJISを混在させる場合は、何所から何所までがJIS文字列であるか見分けるための記号が必要であり、記号を読み落とすと再現できなくなってしまいます。

 残念なことに日本語の文字コードに関しては、今後しばらくの間も混乱を招きながらも対応を取っていくしかないようです。JISコードがASCIIコードと重ならないように値をずらして利用するのが一般的なのですが、そのずらし計算の方法によって Shift-JIS EUC など複数の方式が混在することになりました。

 単純に JIS に定数を足し合わせて変換する方法に EUC という表現があります。もう少し複雑な計算をするのが Shift-JISコード です。Windows系の OS では、多くの場合 Shift-JIS を利用しているようです。しかしながら、Unix系のOSはたいてい EUC を利用しています。

 

Team TripleFalcon. http://www.triplefalcon.com/

ASCII

 7bit あれば送受信可能な文字コードです。 ANSI X3.4-1986 に定められています。正確には、0x21〜0x7E までが文字を表すコードで、0x20 が空白を表す文字となっています。ASCIIは、American Standard Code for Information Interchange の略称です。それ以外の数値は、制御文字として予約されています。

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2   !
3
4
5 [ ] _
6
7 DEL

 

Team TripleFalcon. http://www.triplefalcon.com/

ISO-646

 ASCII とほぼ同じ内容の 7bit コードですが、いくつか柔軟に選択可能な文字を指定しています。例えば、コード (0x23= '#') を '£' に置き換えてもいいように柔軟性を持たせています。 下表の灰色部分が、定義可能文字です。バックスラッシュ( 0x5C='\') もそれにあたります。この記号は、ISO646 に準拠した世界中の国内標準で様々に利用されています。例えば、日本のJIS では、'¥' を割り当てています。英字以外のアルファベット(例えばドイツ語のウムラウト付き A O U )などの記号がこの定義可能領域に埋められているので、[ ¥ ] などはヨーロッパと日本では見え方がかなり違います。

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2   ! :O:
3
4
5 [ ] _
6
7 DEL

 

Team TripleFalcon. http://www.triplefalcon.com/

JIS

ISO646に準拠して '¥'等の記号を定義した日本の文字コードです。0x80 以上の値にはカタカナが定義されています。正式名は JIS X 0201-1976

0 1 2 3 4 5 6 7 8 9 A B C D E F
0 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI
1 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US
2   !
3
4
5 [ ] _
6
7 DEL

 

Team TripleFalcon. http://www.triplefalcon.com/

JIS漢字コード

 JISコードは8ビット体系でしたが、漢字はその数が多く 8Bit だけではとうてい表現できないので、別途 16bit コードとして漢字文字体系として追加されました。追加された漢字コードは、JIS第一水準、JIS第二水準として標準化されました。しかしながら、人名固有のな特別な漢字等は基本的には登録されていないようです。

 漢字コードは第一バイトも第二バイトも 0x21〜0x7Eの間にあるため制御コードとの混在は簡単です。

 JIS漢字コードは、値が 8Bitコードと見分けにくい問題があります。例えば、「王」という漢字はJIS第一水準の 0x3225 という値でコード化されています。しかし、この文字が8Bitコードと混在して置かれたとき、8Bit の 0x32='2' 0x25='%' と 16bitの 0x3225='王' を見分けることが出来ません。したがって、ここから漢字が始まることを示す[漢字IN] および漢字が終了することを示す [漢字OUT]を間にはさむ必要があります。

 [漢字IN] = <0x1B 0x24 0x42> = "ESC $ B"

 [漢字OUT] = <0x1B 0x28 0x42> = "ESC ( B"

 このような制御コードを間にはさむやり方は、通信時に一度取りこぼすと被害が大きいという欠点の他、カットアンドペーストによる文字列の切り出しを困難にします。(今切り出している部分が常に漢字部分かどうか判別しなければならない。)

 

Team TripleFalcon. http://www.triplefalcon.com/

Shift-JIS

 JIS漢字コードの値が8Bitコードと見分けにくいため、思い切って8Bitコードと別の値にシフトさせるための方法です。漢字INとかOUTといった面倒なことはなくなりますが、8Bit文字と混在させた場合は、結局先頭から解釈しない限りある文字が漢字であるか8Bit文字であるが区別できません。

 値をシフトする方法は、EUC等の方法もありますが、Shift-JIS はとても複雑です。これは、0xA0 〜 0xDF の半角カナ文字をそのまま利用できるようにして、間を縫うように漢字コードを再割り当てしたからです。

 

Team TripleFalcon. http://www.triplefalcon.com/

EUC

 漢字などの多バイトコードを、UNIX で扱えるようにしたコード体系です。Extended Unix Code の略です。このコードは標準化団体や国の主導ではなくAT&T が定めたものです。日本語を扱う場合は、日本語のJIS漢字コードに 0x8000 を直接足し合わせるだけで計算できるので簡単です。

 

Team TripleFalcon. http://www.triplefalcon.com/

Unicode

(ISO-10646)

 世界中の文字を表現できるように、16Bit あるいはさらに拡張した 32Bit コードを用いてコード化した体系です。旧来日本が制定してきていた JIS との互換性が無く、単純な数式で変換できなくなってしまいました。これは、韓国や中国など漢字利用圏の文字を合理化してコード化するという建前の他に、「日本」の足を引っ張ろうという諸外国の思惑が絡んでいることは間違いありません。 JIS と Unicode の値の変換は表を用いて行う以外にありません。コンバートプログラムは内部に表を持たざるをえず、従って変換にも時間がかかるしプログラムサイズも大きくなります。JISとShiftJIS の変換が複雑でもこれよりはかなりマシといえます。

 ISO-10646-UCS-2 は、16Bit文字体系です。

 ISO-10646-UCS-4 は、32Bit文字体系です。

 文字体系が決まっても、コンピュータで処理するために内部表現も決めてやる必要があります。そのような表現に UTF-8 , UTF-16 ,UTF-16BE ,UTF-16LE 等の様々な方法があり、混乱の元にもなっているようです。

 

Team TripleFalcon. http://www.triplefalcon.com/

UTF-8

 UNICODE の多バイト文字を、Shift-JIS や EUC のように 単バイト(8Bit)文字と多バイト文字の混在で表現するように工夫したのが UTF-8 です。Unicode の英アルファベットは ASCII コードと同じ値を利用しているので、英アルファベットが文書のほとんどを占める場合にデータサイズが小さくて便利です。

 しかしながら、CJK文字(中国、日本、韓国文字)は表現すると3バイトになってしまうため、漢字ばかりの文書の場合は却ってデータサイズが大きくなります。2バイト文字は、ロシアのキリル文字などが利用しているようです。文字列が UTF-8 でありほかの表現でないことを示すために <0xBF BB BF> を先頭に補う場合があります。

UTF-8では、ランダムに「先頭からn文字目」にアクセスするのは困難です。

 

Team TripleFalcon. http://www.triplefalcon.com/

UTF-16

 UNICODE の全部の文字を 16Bit で表現しようとする表現方法に UTF-16 があります。ASCII で表現可能な英アルファベットもいちいち16Bitで表現します。

UTF-16では、ランダムに「先頭からn文字目」にアクセスするのが簡単です。

 上位バイトを前後、どちらに書くかで2種類の書き方が出来てしまいました。上位バイトを先頭書き込むやり方を UTF-16BE といい、反対に上位バイトを後ろに書く書き方を UTF-16LE といいます。また、どちらが上位バイトであるか、先頭にダミーの文字 0xFFFE を補うことでわかるようにしたのが 正式な UTF-16 です。例えば、上位バイトが先にかかれる場合は、文字列先頭が <0xFF 0xFE> となり、下位バイトが先にかかれる場合は先頭2バイトが <0xFE 0xFF> となります。

 

Team TripleFalcon. http://www.triplefalcon.com/

 

 

Team TripleFalcon. http://www.triplefalcon.com/

 

 

Team TripleFalcon. http://www.triplefalcon.com/

 

 

Team TripleFalcon. http://www.triplefalcon.com/

 

 

Team TripleFalcon. http://www.triplefalcon.com/


Team TRIPLE FALCON

アクション&シミュレーション ゲーミングとゲーム製作を真面目に考える 新進気鋭の研究者集団

   
 
用語集TOP

文字コード

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
あ-お か-こ さ-そ た-と な-の
は-ほ ま-も や-よ ら-ろ わ-ん

数学、哲学、工学を横断する事典です。よろしければ活用してください。 ゲーム, アクション,シューティング,シミュレーション,リアルタイム, 計量経済学,計量心理学, コンピュータ,用語集,計算機科学用語集,コンピュータ用語集, 3DCG, グラフィックス,ゲームグラフィックス,美少女, 光反射,鏡面反射,拡散反射,屈折,散乱,異方性反射,影, シェーディング,レンダリング,透視変換, 発光,爆発,爆炎,煙, 物理, 人物,表情,表現,運動,力学,流体, 計算幾何学, グラフ,アフィン変換,アフィン写像,凸包,超平面,3D,3Dの数理, コンピュータサイエンス,コンピュータ, 計算機科学, チューリングマシン,チューリング機械,線形有界オートマトン,プッシュダウンオートマトン,有限オートマトン, オートマトン,状態遷移,遷移関数,対角線論法,文字列,記号, FA,NFA,PDA,NPDA,LBA,NLBA,TM, 計算量,P,NP,PSPACE,NP完全,NP困難,P完全,PSPACE完全,PP,APX,APX完全, 確率チューリング機械,確率オートマトン, 音声, 音階,音量,音律,和音,和声,無限上昇音,MIDI, 色彩, 表色系,顕色系,混色系,RGB,CMY,YCbCr,YUV,YIQ,CIE,L*a*b*, 符号, 圧縮,符号化,情報源符号化, 符号,ブロック符号,ストリーム符号,符号理論, 離散数学, 集合,写像,関数,全単写,単写,全写,対応関係,関係,反射,反射推移閉包, 代数系, 群,環,体,モノイド,半群,準同型写像,同型写像, 形式言語, 言語,正則言語,文脈自由言語,文脈依存言語,確率言語, 文法,正則文法,文脈自由文法,文脈依存文法,確率文脈自由言語, 文字,文字列, 3型言語,2型言語,1型言語,0型言語, 信号処理, 変換,フィルタ,信号処理,DFT,DCT,DST,FFT,Wavelet,フーリエ変換, 離散,コサイン変換,サイン変換,ウェーブレット, 基礎数学, 数学,応用数学,基礎数学,フィボナッチ数列, 解析学, 位相空間,線形空間,距離空間,ベクトル空間,vector,バナッハ空間,Banach,ヒルベルト空間,Hilbert,ユークリッド空間,Euclid, ノルム,内積,可算濃度,非可算濃度, 情報理論, 情報源,情報量,エントロピー,相互情報量,記号,記号列, 複雑系, カオス,フラクタル,フラクタル幾何学,カオス写像, インターネット, セキュリティ,HTTP,SMTP,FTP,プロトコル, その他理論,理論, 紅茶,自転車通勤,備忘録, 暗号, モンゴメリ演算,高速計算法,素因数分解,離散対数問題, 暗号,ブロック暗号,ストリーム暗号,楕円暗号, 乱数,乱数生成,共通鍵暗号,公開鍵暗号,公開鍵署名,鍵共有,鍵交換, 線形攻撃,差分攻撃,補間攻撃,スライド攻撃,量子暗号, 依頼計算,ゼロ知識対話証明,ハッシュ,

AES,Rijndael,RSA,ElGamal,Twofish,Serpent,

RC6,MARS,CAST,IDEA,GOST,

MQV,DH,EC-DH,EC-ElGamal,

終了,

フィリピンパブ
アミューズメント企画はお任せ
資産運用はお任せ
メール お問い合わせ お問い合わせ メール メール メール メール メール メール