2012-03-18

文字コードのお話

書きかけですが...というか、俺のメモ。


奥が深い...



■文字集合・文字セット (character set)
文字を重複なく集めたもの。


■符号化文字集合 (coded character set、CCS)
ASCII
7bit。
0x5c:バックスラッシュ
0x7e:チルダ

JIS X 0201
ラテン文字用図形文字集合と片仮名用図形文字集合のふたつの文字集合よりなっている。
8bit。
0x5c:円記号
0x7e:オーバーライン
※JIS X 0201-1997 において、文字名称がOVER LINEと規定されているが、図形としてはオーバーラインでなくチルダのような形をとっても良いことが附属書2において記されている。OADG109キーボードでは、オーバーラインが刻印されているが、OADG109Aキーボードでは、チルダが刻印されている。

JIS X 0208:1997
非漢字、第一水準漢字、第二水準漢字

JIS X 0212-1990
補助漢字。この文字集合が単独で使われることはない。JIS X 0208 を拡張する目的で策定された。

JIS X 0213:2000
面区点番号で表される。第一面には、JIS X 0208:1997がすべてと、JIS X 0208:1997の保留領域であった空き領域に、非漢字(659字)、第三水準漢字(1,249字)が収録されている。
第二面には、第四水準漢字(2,436字)が収録されている。

JIS X 0213:2004
JIS X 0213:2000に対して、例示字形の変更、10文字追加が行われた。例示字形の変更に対応したフォントが必要。

JIS X 0221
国際符号化文字集合。UCSのJIS規格。

Unicode
元々は、16bit固定の符号化文字集合。足らなくなったので21bitに拡張。その際、当初の16bit領域を「基本多言語面(BMP)」とした。この領域は、UCS-2で定義される範囲と同一。

ISO/IEC 10646 (UCS; Universal Coded Character Set)
UCS-2
2オクテット(16bit)固定。UnicodeのBMP。

UCS-4
4オクテット(32bit)を基本とする。

Windows-31J(IANA登録名)
Windows Codepage 932
マイクロソフト標準キャラクタセット
見出しの名称は同じものを指す。このキャラクタセットは、次のように構成される。
  • JIS X 0201:1997
  • JIS X 0208:1997
  • NEC特殊文字
  • NEC選定IBM拡張文字
  • IBM拡張文字
※ この符号化文字集合は、0x5Cと0x7eに以下の図形が割り当てられている。
 0x5c:REVERSE SOLIDUS (YEN SIGN)
 0x7e:TILDE



■文字符号化方式 (character encoding scheme、CES)

符号化文字集合の「符号」をバイト列に変換する方式。ある文字集合に含まれる文字を用いて記述した同一の文字(文字列)であっても、符号化方式が異なれば、異なるバイト列となる。また、異なる文字符号化方式の文字列データであっても、基となる文字集合が同じであれば、文字の欠落なく相互変換が可能。

  • US-ASCII
  • ISO-2022-JP
  • Shift_JIS
  • EUC-JP
  • UTF-8
  • UTF-16



■JIS X 0208 を ISO-2022-JP で符号化する方法
区と点をそれぞれ16進に変換し、それぞれに0x20を加算する。
愛:16区6点 → 0x10区0x06点 → 0x3026


■JIS X 0208 を EUC-JP で符号化する方法
区と点をそれぞれ16進に変換し、それぞれに0xA0を加算する。
愛:16区6点 → 0x10区0x06点 → 0xB0A6


■JIS X 0208 を Shift_JIS で符号化する方法
(1) 第1バイト
・1区~62区      (区 - 1) / 2 + 0x81 ※小数点以下切り捨て
・63区~94区   (区 - 1) / 2 + 0xC1 ※小数点以下切り捨て


(2) 第2バイト 区が奇数の場合
・1区~63区       点 + 0x3F
・64区~94区     点 + 0x40


(3) 第2バイト 区が偶数の場合
点 + 0x9E


■WindowsでJIS X 2013:2004 対応後の文字セット
  • WGL4
  • マイクロソフト標準キャラクタ セット
  • JIS X 0212
  • JIS X 0221 非漢字
  • JIS X 0213:2004
  • Unicode 4.0 通貨記号

■Windows Codepage 932
http://msdn.microsoft.com/en-us/goglobal/cc305152


■IANA CHARACTER SETS
http://www.iana.org/assignments/character-sets


■Shift-JIS と Unicode 間の変換問題
http://support.microsoft.com/default.aspx?scid=kb;ja;JP170559
片方向変換しかできない文字の一覧が載っている。

■変換表
http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT
http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit932.txt

0 件のコメント:

コメントを投稿

Chatの「メッセージは投稿者によって削除されました」を非表示にする方法

Chrome拡張機能を自作してやってみよう! ♪できるかな できるかな ・・・ 無理ぽ (´・ω・`) iframeの中に、実際のメッセージのやり取りが表示されるので、 $(function(){ $('iframe[name^="spa...