"

德甲体育-欢迎您_YABO网页登陆-官网-欢迎您拥有全球最顶尖的原生APP,每天为您提供千场精彩体育赛事,德甲体育-欢迎您_YABO网页登陆-官网-欢迎您更有真人、彩票、电子老虎机、真人电子竞技游戏等多种娱乐方式选择,德甲体育-欢迎您_YABO网页登陆-官网-欢迎您让您尽享娱乐、赛事投注等,且无后顾之忧!

"
首頁 > 全角文字 半角文字 文字コード

全角文字 半角文字 文字コード

互聯網 2021-04-20 09:07:48
全角文字 半角文字 文字コード目次全角 半角 とはコンピュータでの文字の內部表現(文字コード)ビットとバイトASCIIコード文字コードを確認する方法半角カナISO 2022ヨーロッパの 8bit 文字コード全角文字日本語文字コードUnicodeWindows メモ帳全角 半角 とは目次へ↑

全角と半角の基本的な違いは「1文字を表示するのにどのような表示スペースを用いるのか?」ということです。

全角1文字の表示スペースが「正方形」半角1文字の表示スペースが「縦長の長方形(全角の縦半分)」基本的な違いであって、フォントによっては、ここまで綺麗な正方形?縦半分長方形にはなりません。フォントとは印刷や畫面表示に用いる文字の形のデザイン(書體)のことで、文字セット全體にデザインの統一性を持たせたもののことです。文字幅の書體に関しては、大きく分けて次の2種類があります。等幅フォント(モノスペースフォント, monospaced font)字形によらずに文字の幅が一定のフォント「M」のような広い幅の広い文字も、「I」のような狹い幅の文字も、同じ幅で表示可変幅フォント(プロポーショナルフォント, proportional font)字形によって文字の幅が違うフォント「M」のような広い幅の文字は広い幅で、「I」のような狹い幅の文字は狹い幅で表示上の枠內の文字は「MSゴシック」という「等幅フォント」で表示してますので全角と半角の違いは分かりやすいのですが、「MSPゴシック」という「プロポーショナルフォント」では全角と半角の違いが分かりにくくなります。違いが分かりにくい場合は、全角と半角の両方の文字表示して幅を見比べてみるとよいでしょう。

Windows の場合は、日本語入力モードをONにして、文字を打ち込んで、変換が確定してない下線がついている狀態で、[F8]キーで半角文字、[F9]キーで全角文字に変換されます。

以下に全角文字と半角文字の例を示します。上から四行並びで、次のような順になっています。

全角文字、MSゴシック半角文字、MSゴシック全角文字、MSPゴシック半角文字、MSPゴシックABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz1234567890123456789012345678901234567890!”?!纾ィΑǎ?,-./:;<=>?@[\¥]^_‘{|}~ ̄!"#$%&'()*+,-./:;?@[\¥]^_'{|}~ ̄!”?!纾ィΑǎ?,-./:;<=>?@[\¥]^_‘{|}~ ̄!"#$%&'()*+,-./:;?@[\¥]^_'{|}~ ̄?!浮?、?ヲァィゥェォャュョッアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜???????????????????????????????????????????????????????????????!浮?、?ヲァィゥェォャュョッアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゛゜??????????????????????????????????????????????????????????????等幅フォントの「MSゴシック」は全角と半角の違いが分かりやすいです。プロポーショナルフォントの「MSPゴシック」は全角と半角の違いが分かりにくいのですが、並べて比較すると半角の方が狹いスペースで表示されていることが分かります。

全角文字と半角文字の違いは「ちょっと見た目が違うだけ」のように思ってしまいますが、実は全くの別の代物です。簡単に言いますと文字コードが違います。文字コードとは文字に割り當てられた番號(數値)のことで、半角文字と全角文字ではその割り振られている番號が全く違います。文字コードが違うので「全角文字と半角文字は、形は似てるけど別の文字(別の情報)」を表していることになります。本來なら文字の幅は「フォント」と呼ばれる「文字コードと文字の形の対応」によって決定されるべきものであります。しかし様々な経緯があって、文字コードの違いがなんとなく見分けられるように、「1バイト文字は半角領域」「2バイト文字は全角領域」で表示するという慣習ができあがってしまいました。

本來ならば文字コードの定義は各文字に対して1通りで、文字の幅や形に関してはフォントでのみ対応することが理想的です。しかし、歴史的に複雑な経緯があって、現狀のような體系なっているわけです。誤解を恐れずに簡単にまとめると、次のようになります。

全角文字コンピュータで日本語のひらがなや漢字を扱うために生まれた「比較的、新しい規格」の文字全角文字がないと日本語の文章が表現できないワープロ検定等での特殊な狀況ではない限り、「全角英數字や全角記號」は避けるのが無難半角文字コンピュータで初めて文字を扱った時からある「比較的、古い規格」の文字英語圏では半角文字だけで十分プログラミングやExcel等の數式では「半角英數字や半角記號」を用いる特殊な狀況ではない限り、「半角????」は避けるのが無難

とにかく「全角文字」と「半角文字」の違いを知っておき、適切に使い分けることが重要です。特に、英數字や記號は全角文字と半角文字の両方存在しますので注意が必要です。

コンピュータでの文字の內部表現(文字コード)目次へ↑

現在のコンピュータでは情報は全て2進法の數値によって表されています。あらゆる情報が數値で管理されているということです。文字情報に関しては、各文字に対して番號を割り振って管理していると思ってください。各文字に付けられた番號のことを文字コードと呼びます。この文字コードによって、コンピュータで文字を自在に扱ったり管理したりすることができるようになります。

文字コードにより、各文字は大雑把に1バイト文字と2バイト文字に分類されます。1バイトは8ビット(2進法8桁)のことなので、28 = 256種類の情報(文字)を表すことができます。また、2バイトは16ビットなので、216 = 65,536種類の情報を表すことができます。英數字だけならば1バイトで十分なのですが、日本語のひらがな、カタカナ、漢字を合わせると、1バイトでは足りませんので2バイトで番號を割り振っています。(コード體系によって3バイト、4バイトを使うこともあります。ここでの分類は厳密なものではありません。)

2バイト文字は、1バイト文字2文字の幅の正方形、で表示させることが多いので、1バイト文字を半角文字、2バイト文字を全角文字と呼ぶことがあります。とにかく、全角文字と半角文字で文字コードが違うということは知っておいてください。文字コードが違うので、見た目は似ていても違った文字(情報)を表しています。

コンピュータの黎明期、文字コードには各自好き勝手な割り振りが行われていました。しかし、多くのコンピュータが連攜して作業を実行するには統一された文字コードが必要です。當初は、計算を実行するCPU、データを記憶するメモリ、データを転送するバス、が貧弱で文字コードに多くのビットを割り當てるわけにはいきませんでした。そのため、取り扱う文字の數は極力少なくするようにしていました?,F在では多くのビットを文字コードに割り當てることができるようになり、世界中のコンピュータがネットワークで繋がるようになりました。そして、世界中の文字コードを統一する必要性が高まってきました。文字コードを統一する際、それまで使っていた文字コードが使えなくなると不便だったり不利益を被ったりします。そのため、以下で説明するような複雑な改訂の歴史を辿ってしまうことになったわけです。

ビットとバイト目次へ↑

2進數の1桁のことを1ビット(bit:binary digit の略)と呼びます。2進數を數桁をまとめたものを1バイト(byte)と呼びます。byte の元々の意味は「噛む、食いつく」です。1バイトはコンピュータが一回で処理するデータ量を表す基本単位でした。コンピュータの黎明期では1バイトが6ビットだったり7ビットだったりしていましたが、そのうち8ビットが主流になりました。その後、処理の基本単位が16ビットや32ビットに拡張されていきましたが、8ビットで1バイトというのが世界中に広まってしまったので、現在では8ビット1バイトになっています。8ビットで1バイトが正式に決められたのは2008年になります。正式に決められるまでに時間がかかったので、誤解を避けるために8ビットのことを1バイトという言い方を避けて、オクテット(octet)という言い方をすることがあります。

24 = 16 の関係があるので、2進數の4桁は16進數の1桁で表現できます。1バイト(8ビット)の2進數は16進數2桁で表示できます。2進數と16進數の変換は以下の対応表を使って置き換えるだけで簡単に実行できます。

10進數2進數16進數000000100011200102300113401004501015601106701117810008910019101010A111011B121100C131101D141110E151111FASCIIコード目次へ↑

世界標準になってる代表的な文字コードはASCII文字コードです。ASCII(アスキー)は American Standard Code for Information Interchange の略です。アメリカで発達して世界標準の文字コードになりました。(ここ)で各文字に対応する數値が分かります。

コンピュータは元々、電子計算機と言いまして、計算することが目的で文字を扱う必要はありませんでした。プログラムは2進數で書かれたマシン語(機械語)で記述され、文字とは無縁の存在だったのです。その後、プログラミング言語が人間に理解しやすいアセンブラや高級言語に発達していく過程で文字情報を扱う必要がでてきました。このような経緯があったため、文字コードは個々のコンピュータによって獨自の物を使っていたわけです。しかし、そのままでは他のコンピュータと連攜(通信)し、様々な情報を処理することが難しくなるため、文字コードを統一する必要が出てきました。そこで、1963年に米國の國家規格協會(ANSI)によって7bit の文字コード ASA X3.4 (現 ANSI INCITS 4) が制定されました。このコードのことを通稱「舊ASCIIコード」と呼びます。

世界中でコンピュータの開発が進められ、様々な國の文字を扱う必要が出てきます。1967年に國際標準化機構(ISO)によって ISO R 646 が制定されました。當初は歐州提案の 6bit コードと、米國提案の 7bit コードの両方がありました。1973年に正式な規格の ISO 646 になる際に 6bit 案は廃止されました。こちらの ECMA-1 が當時の 6bit 案に多少の修正を加えてヨーロッパで制定されたものになります。また、後述しますが、ISO 646 が正式な規格になるに際し、國ごとに変更可能な12文字が決められました。この ISO 646 を元に米國で制定された文字コードを「ASCIIコード」と呼びます。また、ISO 646 を元に日本では1969年に 日本工業規格(JIS)によって JIS C 6220(現 JIS X 0201)が制定されました。

例えば大文字の「A」のアスキーコードは2進數で「100 0001」です。このコードを16進數に変換すると「41」になります。また、(4×16+1 = 64+1 = 65)の変換計算から10進數では「65」になることが分かります。

A8ビット(1バイト)上位4ビット下位4ビット2進數0100000116進數4110進數65また、小文字の「n」のアスキーコードは2進數で「110 1110」です。このコードを16進數に変換すると「6E」になります。10進數では(6×16+14 = 110)の変換計算から「110」になります。n8ビット(1バイト)上位4ビット下位4ビット2進數0110111016進數6E10進數110アスキーコードは7ビットのコードなのですが、現在では最上位ビットに 0 を補って8ビット(16進數2桁)のバイト列単位で処理することが殆どです。

以下、アスキーコードの対応表です。7ビットの文字コードです。

赤のコードは制御文字と呼ばれる部分です。青のコード「SP」は空白文字(スペース)です。不可視文字と呼びますが、図形文字の一種と考えてもよいです。黒と緑のコードは図形文字と呼ばれます。2進上位3bit000_001_010_011_100_101_110_111_下位4bit16進0_1_2_3_4_5_6_7__0000_0NULDLESP0@P`p_0001_1SOHDC1!1AQaq_0010_2STXDC2"2BRbr_0011_3ETXDC3#3CScs_0100_4EOTDC4$4DTdt_0101_5ENQNAK%5EUeu_0110_6ACKSYN&6FVfv_0111_7BELETB'7GWgw_1000_8BSCAN(8HXhx_1001_9HTEM)9IYiy_1010_ALFSUB*:JZjz_1011_BVTESC+;K[k{_1100_CFFFS,N^n~_1111_FSIUS/?O_oDEL

黒や緑の図形文字は、畫面表示や印刷の際に実際に形として現れる文字のことです。緑のコードは ISO 646 という國際規格で、國ごとに割り當ての変更が認められた12文字です。16進で「5C」の「\」バックスラッシュは、日本では「¥」円マークに割り當てられました。16進で「7E」の「~」チルダは、日本では「 ̄」オーバーライン(上線)に割り當てられました。以下は様々な國の割り當てを表にしたものです。

國規格\16進コード2324405B5C5D5E607B7C7D7EアメリカUS-ASCII#$@[\]^`{|}~日本JIS C 6220-1969#$@[¥]^`{|} ̄韓國KS C 5636-1989#$@[?]^`{|} ̄中國GB/T 1988-80#¥@[\]^`{|} ̄臺灣CNS 5205-1996#$@[\]^`{|} ̄イギリスBS 4730£$@[\]^`{|}~フランスNF Z 62010_1982£$à[°?§μéùè¨ドイツDIN 66003#$§??ü^`??ü?スペインIBM Spanish#$·????`′??¨國によって重要な記號が違うので、様々な特徴がでています。日本では「5C」の「バックスラッシュ」を「円マーク」に置き換えてしまったのですが、バックスラッシュはC言語のエスケープ文字に使っていたり、Windowsのフォルダの區切り文字に使われていたりする結構重要な記號です。この記號を取り換えてしまったために起きた不具合が今でもあります。

赤の制御文字(control character)とは、ディスプレイやプリンタや通信裝置などの周辺機器に対して、特別な動作(制御)をさせる際に用いる特殊な文字のことです。當時のコンピュータは電動式タイプライターのテレタイプ端末(TTY)と呼ばれる端末でメインフレームコンピュータに電信で命令を送ったり、紙テープにパンチ穴を開けてプログラムを記録したりしていました。その際に使われていた制御コードが元になっています。制御コードというものは、古くは電信のモールス符號の頃から存在する概念です。

以下に、制御コードの一覧表を示します?!窩S」の項目は「キャレット記法」というキャレット「^」と他の文字を組み合わせて書かれた記法です。表示することができない制御文字を表示できる文字で表したものです。TTY端末のキーボードから直接、制御文字を打ち込む際に、例えば「^G」は [Ctrl] で表されるコントロールキーを押しながら[G]キーを打ち込むことを表しています?!窩言語」の項目はC言語のソースコードで制御コードを表す際に使われる記法です。

16進コード略號CSC言語名稱日本語名稱備考00NUL^@\0NULL空文字元々は、紙テープの末端のデータが書き込まれていない箇所をコンピュータが読み飛ばすために、「何もしない」コードとして定められたものだった。後に、テレタイプ端末がキャリッジ?リターンや行送りを物理的にするための時間を稼ぐために入れられるようにもなった?,F在では、C言語などで文字列の終端を表すのに用いられる。01SOH^AStart of Headingヘッディング開始通信伝文中のヘッダ開始を表す。02STX^BStart of Textテキスト開始通信伝文中のテキスト部分の開始を表す。03ETX^CEnd of Textテキスト終了通信伝聞のテキスト部分の終了、Ctrl-Cはプログラムやプロセスに割り込む際にも使われる。04EOT^DEnd of Transmission伝送終了データ送信側がデータ送信終了時にデータ受信先にEOTを送る。05ENQ^EEnquiry問い合わせデータ送信側がデータ送信しようというときに、データ受信側にデータに先立ってENQを送る。データ受信先は、データ受信できる狀態であればデータ送信側にACKを送り、データ受信できない狀態であればNAKを送る。データ送信側はACKを受信した場合にデータを送り、NAKを受信した場合はデータ送信を斷念したり時間を置いて再度ENQ送信するなどの処理を行なう。06ACK^FAcknowledge肯定応答受信したデータにCRCなどの異常がない場合や、ENQを受信後にデータ受信ができる狀態であれば、送信側にACKを送る。07BEL^G\aBellベル元々は通信相手の端末のベルを鳴らすのに使われていた?,F在では物理的な鐘ではなくビープ音を鳴らす。端末エミュレータでは音を鳴らさずにウィンドウを點滅させるものもある。08BS^H\bBackspase一文字後退元々はカーソルを手前(左)に移動させ、重ね打ちをしてアクセント符號つきの文字を打ち出すために使用されていた?,F在では、カーソルを手前(左)に移動させてそこの文字を削除するために用いられる。09HT^I\tHorizontal Tabulation水平タブ水平方向のタブ。テキストデータのデータの區切りに使うこともある。0ALF^J\nLine Feed改行Line Feedは「行送り」の意味。タイプライターでは、カーソルを桁(水平方向)はそのままで1行下へ移動させる。UNIXでは、LF単獨で改行コードとして扱われ、行送りと桁の復帰を行う。MS-DOSやWindowsでは、CRとLFを併用する。0BVT^K\vVirtical Tabulation垂直タブ垂直方向のタブ。0CFF^L\fForm Feed書式送りプリンタでは、次のページを給紙する。多くのプログラミング言語では空白として扱われ、コードの論理的區分の分け目として使用される。いくつかの端末エミュレータでは、畫面をクリアする。プレーンテキストで記述されるRFCでは、ページ分割文字として使用される。0DCR^M\rCarriage Return行頭復帰元はカーソルを同じ行の先頭の桁(左端)へ移動させるのに使われた。macOSよりも前のClassic Mac OSでは、CR単獨で改行コードとして扱われ、行送りと桁の移動を行う。MS-DOSやWindowsでは、CRとLFを併用する。0ESO^NShift Outシフトアウト別の文字コードセットに遷移する。0FSI^OShift Inシフトインシフトアウトの後で、通常の文字コードセットに戻る。10DLE^PData Link Escape伝送制御拡張バイナリ通信(データそのものに制御文字を含むような通信)であることを表すために使う。DLE自體をバイナリデータに含める場合はDLEを2つ重ねて送信する。データ受信側はDLEが2つ重ねられている場合は、DLEというバイナリデータ(制御文字でなく)を受信したと解釈する。こうしたことは、通常のアプリケーションでは意識しなくてもいいことが多い。しかし、プロトコロルアナライザなどで通信データを表示した場合、DLEが2つ重ねられていることを知らないと、おかしな通信データと誤解しかねない。11DC1^QDevice Control 1制御裝置1この4つのコードは裝置制御のために予約されている。コードの解釈は接続している裝置に依存する。主として、DC1とDC2は裝置を作動させる目的で、DC3とDC4は裝置を休止または停止させる目的で使用される。実際の用法としてはDC1とDC3をソフトウェアフロー制御のために用いるのがデファクト?スタンダードとなっており、その場合、DC1はXON、DC3はXOFFと呼ばれる。テキストデータ受信側はテキスト送信側に、テキスト送信の一時停止を求めるためXON(DC1)を送信し、一時停止を解除するためXOFF(DC3)を送信する。XONを受信したテキストデータ送信側は、XOFFを受信するまでテキストデータの送信を一時停止する。なお、バイナリ通信ではDC1、DC3によるフロー制御は行なわない。バイナリ通信ではDC1、DC3は単なるバイナリデータであり、制御文字と解釈しないからである。12DC2^RDevice Control 2制御裝置313DC3^SDevice Control 3制御裝置314DC4^TDevice Control 4制御裝置415NAK^UNegative Acknowledge否定応答受信したデータにCRCなどの異常があった場合や、ENQを受信後にデータ受信ができる狀態でないなら送信側にNAKを送る16SYN^VSynchronous Idle同期信號キャラクタ同期方式の通信で、同期を取るために使う。17ETB^WEnd of Transmission Block伝送ブロック終了通信電文の1ブロック(一連のまとまりのある複數の伝文)が終了したことを表す。18CAN^XCancel取り消し先行するデータにエラーがある、または、無視してほしいことを示す。19EM^YEnd of Medium記録媒體終端受信データを記録する媒體(紙や磁気テープなど)が、記録できる範囲の末端まで到達したことを表す。1ASUB^ZSubstitute Character文字置換本來は、伝送制御文字として、不明瞭な、または、無効な文字を受信したことを表す。しかし、下位レイヤで誤り検出訂正が行われるため、この用途で用いる必要はほぼなく、他の用途で用いられる。テキストファイルのファイル終端(EOF)を表すのによく使われる。1BESC^[Escape拡張キーボードのEscキーを押すとこの文字がシステムに送られる。ソフトウェアのユーザインターフェースでは、畫面?メニュー?モードから出るのに用いられる。プリンタや端末などの裝置制御プロトコルでは、後に続く文字を特別な解釈をする(エスケープシーケンス)ことを指示するために用いられる。1CFS^\File Separatorファイル分離データ構造のフィールドを記録する區切り文字として使われる。階層的な構造の場合、USが最も低いレベル(プレーンテキストのデータアイテム)を分割し、 RS, GS, FSはそれぞれ下のレベルのアイテムからなるグループを分ける。1DGS^]Group Separatorグループ分離1ERS^^Record Separatorレコード分離1FUS^_Unit Separatorユニット分離7FDEL^?Delate抹消元々は紙テープで誤って穿孔した箇所の全部のビットの穴をあけて、データを抹消するのに用いられた?,F代のコンピュータでは、カーソルのすぐ右の文字を削除するのに使われる。文字コードを確認する方法目次へ↑

実際に文字コードがどうなっているのかを確認するには「バイナリエディタ」「バイナリビューア」と呼ばれるソフト(アプリ)を利用します?!弗匹攻去ē钎%俊工沃肖摔稀弗啸ぅ圣辚猢`ド」を備えているものがあります。オンラインで利用できるものもあり、とりあえずは、Free Online Hex Editor & Viewer や BinaryViewer on Web 等を利用してみると良いでしょう。

32bitの Windows では、コマンドプロンプトで debug コマンドを使って16進數コードを確認することができます。64bitの Windows では certutil コマンドを使ってコードを確認できます。コマンドプロンプトで以下のように打ち込めば、original.txt ファイルの16進コードをテキストに変換して hexcode.txt に書きだします。hexcode.txt を type コマンドやメモ帳などのテキストエディタで確認すると良いでしょう。

certutil -f -encodehex orginal.txt hexcode.txt

それでは制御コードや図形コードを確認してみましょう。メモ帳などのテキストエディタを開いて次のように打ち込んで、

ab[Tab]cd[Enter]ef[Enter][ファイル(F)]→[名前を付けて保存(A)...]→[文字コード(E):ANSI]と順にクリックして適當な名前を付けて保存します。バイナリビューアで確認すると以下の16進數2桁で表された1バイトずつのコードの列が確認できます。61 62 09 63 64 0D 0A 6566 0D 0A「61」は「a」、「62」は「b」、「63」は「c」、「64」は「d」、「65」は「e」、「66」は「f」の16進數の文字コードです?!?9」は「HT(水平タブ)」、「0D」は「CR(キャリッジリターン)」、「0A」は「LF(ラインフィード)」の16進數の制御コードです。

改行コードには OS によって違ったものが使われています。タイプライター時代の改行の制御に由來があるようです。

OS16進コード略號備考Unix 系 OS0ALFMac OS バージョン10以降Windows 系0D OACR+LFMac 系0DCRMac OS バージョン9までインターネット上のUnix系のサーバからダウンロードしたテキストファイルをWindowsのメモ帳で開くと、改行が全く見當たらないことがあったりします。改行コードを見分けられるテキストエディタを使うと良いでしょう。半角カナ目次へ↑

ASCII コードでは7ビットの領域に文字が定義されています。國際規格 ISO 646 によって、12文字分は各國によって獨自の割り當てができるのですが、それだけではとても日本語の文字を表記することができません。そこで、ASCII コードを元に日本獨自の文字コードが日本工業規格(JIS)によって制定されました。ここで通稱半角カナと呼ばれる文字が登場したわけです。ASCIIコード文字や半角カナ文字は1バイト(8ビット)以下の文字コードで表現されることが多いので、1バイト文字と呼ばれることがあります。

以下は、1969年に「JIS C 6220」として制定され、1987年に「JIS X 0201」に部門 X の新設により移行された規格です。JIS の分類では「C:電子機器及び電気機械」「X:情報処理」になります。この規格では 7ビット符號文字集合(通稱:7ビットJIS、JIS7)と 8ビット符號文字集合(通稱:8ビットJIS、JIS8)の2種類のコード系が制定されました。このコードは、アルファベット(A)、數字(N)、カタカナ(K)、の図形文字で構成されていて、通稱「アンク(ANK)コード」と呼ばれます。

7ビット半角カナ

以下は 7ビット符號のコード表です。2つの7ビットの文字コードを切り替える方式です。1つ目の表は ISO 646 の規格の日本版で、「ローマ字集合」と呼ばれます。2つめの表は図形文字の部分に半角カナと呼ばれる文字や濁點?半濁點や句読點を割り當てていて、「カタカナ集合」と呼ばれます??諜诓糠证衔炊xで、當時のワープロメーカーなどによって獨自の記號を割り當てられている場合がありました。制御コードの「SI」シフトインと「SO」シフトアウトで、2つのコード表を切り替えて文字を扱います。バイト列を解釈するときに SO が現れた後の物は「カタカナ文字」、SI が現れた後の物は「ラテン文字」と解釈します。

2進上位3bit000_001_010_011_100_101_110_111_下位4bit16進0_1_2_3_4_5_6_7__0000_0NULDLESP0@P`p_0001_1SOHDC1!1AQaq_0010_2STXDC2"2BRbr_0011_3ETXDC3#3CScs_0100_4EOTDC4$4DTdt_0101_5ENQNAK%5EUeu_0110_6ACKSYN&6FVfv_0111_7BELETB'7GWgw_1000_8BSCAN(8HXhx_1001_9HTEM)9IYiy_1010_ALFSUB*:JZjz_1011_BVTESC+;K[k{_1100_CFFFS,N^n ̄_1111_ESIUS/?O_oDEL2進上位3bit000_001_010_011_100_101_110_111_下位4bit16進0_1_2_3_4_5_6_7__0000_0NULDLESP???_0001_1SOHDC1????_0010_2STXDC2????_0011_3ETXDC3????_0100_4EOTDC4????_0101_5ENQNAK????_0110_6ACKSYN????_0111_7BELETB????_1000_8BSCAN????_1001_9HTEM????_1010_ALFSUB????_1011_BVTESC????_1100_CFFFS????_1101_DCRGS????_1110_ESORS????_1111_FSIUS????DEL8ビット半角カナ

以下は 8ビット符號のコード表です。16進で 00~7F の前半の7ビット部分を「左側集合(ラテン文字集合)」と呼び、16進で 80~FF の後半の7ビット部分を「右側集合(カタカナ集合)」と呼びます。最上位ビットを見れば左側なのか右側なのか判斷できます。最上位のビットが 1 なら「カタカナ文字」、最上位のビットが 0 なら「ラテン文字」と判斷できます。

2進上位4bit0000_0001_0010_0011_0100_0101_0110_0111_1000_1001_1010_1011_1100_1101_1110_1111_下位4bit16進0_1_2_3_4_5_6_7_8_9_A_B_C_D_E_F__0000_0NULDLESP0@P`p???_0001_1SOHDC1!1AQaq????_0010_2STXDC2"2BRbr????_0011_3ETXDC3#3CScs????_0100_4EOTDC4$4DTdt????_0101_5ENQNAK%5EUeu????_0110_6ACKSYN&6FVfv????_0111_7BELETB'7GWgw????_1000_8BSCAN(8HXhx????_1001_9HTEM)9IYiy????_1010_ALFSUB*:JZjz????_1011_BVTESC+;K[k{????_1100_CFFFS,N^n ̄????_1111_FSIUS/?O_oDEL????ISO 2022目次へ↑

切替方式は日本語カタカナ表示のために導入されたものですが 1973年に、ISO 2022 の國際規格として制定され、他の國へも汎用化されていきました。また、日本語の2バイト文字への拡張にも発展していきます。

以下、ISO 2022 の 7ビットのコード表です。

C0集合制御文字集合が入ります制御文字(Control character)16進で「1B」には ESC が入る決まりです表の切り替えには ESC と 制御文字の組み合わせ(エスケープシーケンス)を用いるGL集合図形文字集合が入ります図形文字(Graphic character)16進で「21-7E」の 6×16 - 2 = 94 文字の文字集合が一般的です94文字集合が呼び出されているときは 16進で「20」は SP に、「7F」は DEL に割り當てますGL 部分は複數バイトになることも許しています JIS X 0208 等では 2バイトの文字集合になります2進上位3bit000_001_010_011_100_101_110_111_下位4bit16進0_1_2_3_4_5_6_7__0000_0C0集合GL集合_0001_1_0010_2_0011_3_0100_4_0101_5_0110_6_0111_7_1000_8_1001_9_1010_A_1011_B_1100_C_1101_D_1110_E_1111_F

以下、ISO 2022 の 8ビットのコード表です。

C0集合制御文字の基本集合が入ります16進で「1B」には ESC が入る決まりですGL集合図形文字集合が入ります左図形集合(Graphic left)16進で「21-7E」の 6×16 - 2 = 94 文字の文字集合が一般的です16進で「20」は SP に、「7F」は DEL に割り當てますC1集合制御文字の補助集合が入りますGR集合図形文字集合が入ります左図形集合(Graphic right)16進で「A1-FE」の 6×16 - 2 = 94 文字の文字集合が一般的です94文字集合が呼び出されているときは 16進で「A0」「FF」は 使用しません16進で「A0-FF」の 6×16 = 96 文字の文字集合でもよいです2進上位4bit0000_0001_0010_0011_0100_0101_0110_0111_1000_1001_1010_1011_1100_1101_1110_1111_下位4bit16進0_1_2_3_4_5_6_7_8_9_A_B_C_D_E_F__0000_0C0集合GL集合C1集合GR集合_0001_1_0010_2_0011_3_0100_4_0101_5_0110_6_0111_7_1000_8_1001_9_1010_A_1011_B_1100_C_1101_D_1110_E_1111_F

以下、C1 制御コードの一覧です。

16進コード略號ESC+名稱日本語名稱備考80PAD@Padding CharacterISO/ICE 6429 では未定義81HOPAHigh Octet PresetISO/ICE 6429 では未定義82BPHBBreak Permitted Hear分割許可83NBHCNo Break Here分割禁止84INDDIndexISO/ICE 6429 では 1992年に廃止85NELENext Line復帰改行86SSAFStart of Selected Area選択領域開始87ESAGEnd of Selected Area選択領域終了88HTSHHorizontal Tabulation Set水平タブ89HTJIHorizontal Tabulation With Justification調整付水平タブ8AVTSJVertical Tabulation Set垂直タブ8BPLDKPartial Line Down下行8CPLULPartial Line Up上行8DRIMReverce Index前ページ8ESS2NSingle-Shift 21文字シフト28FSS3OSingle-Shift 31文字シフト390DCSPDevice Control String裝置制御文字列91PU1QPrivate Use 1私的利用192PU2RPrivate Use 2私的利用293STSSSet Transmit State転送狀態設定94CCHTCancel Character取消し文字95MWUMessage Watingメッセージ待機96SPAVStart of Protected Area保護領域開始97EPAWEnd of Protected Area保護領域終了98SOSXStart of String文字列開始99SGCIYSingle Graphic Character IntroducerISO/ICE 6429 では未定義9ASCIZSingle Character Introducer単一文字開始9BCSI[Control Sequence Introducer制御シーケンス開始9CST\String Terminator文字列終了9DOSC]Operating System CommandOSコマンド9EPM^Privacy Message秘密メッセージ9FAPC_Application Program CommandAPコマンドヨーロッパの 8bit 文字コード目次へ↑

ヨーロッパでは8bit文字へ拡張した文字列が制定されました。1987年に ISO 8859 として制定された、通稱「Latin-1」(ラテン1)と呼ばれるコードは、フランス語、ドイツ語、イタリア語などの西ヨーロッパの言語をカバーしています。その後、中歐、東歐、ギリシャ、ロシア、ヘブライ、トルコ等、様々な文字を収録した8-bitコードが制定されました?,F在は ISO と ICE によって共同で保守されていて、現在「ISO/ICE 8859-1」から「ISO/ICE 8859-16」まであります。

ISO 8859-1 (Latin-1)西ヨーロッパデンマーク語、オランダ語、英語、フェロー語、フィンランド語、フランス語、ドイツ語、アイスランド語、アイルランド語、イタリア語、ノルウェー語、ポルトガル語、レト?ロマンス語群、スコットランド?ゲール語、スペイン語、スウェーデン語ISO 8859-2 (Latin-2)中央ヨーロッパボスニア語、ポーランド語、クロアチア語、チェコ語、スロバキア語、スロベニア語、ハンガリー語ISO 8859-3 (Latin-3)南ヨーロッパトルコ語、マルタ語、エスペラントISO 8859-4 (Latin-4)北ヨーロッパエストニア語、ラトビア語、リトアニア語、グリーンランド語、サーミ語ISO 8859-5キリルベラルーシ語、ブルガリア語、マケドニア語、ロシア語、セルビア語、ウクライナ語ISO 8859-6アラビアISO 8859-7ギリシアISO 8859-8ヘブライISO 8859-9 (Latin-5)トルコ語ISO 8859-10北ゲルマン語群ISO 8859-11タイISO 8859-12デーヴァナーガリー存在しない、UnicodeでカバーすることになったISO 8859-13バルト語ISO 8859-14ケルト語ISO 8859-15 (Latin-9)ISO 8859-1 の改訂殆ど使われない記號を取り除き、ユーロ記號等を取り入れたフランス語、フィンランド語、エストニア語の完全カバーISO 8859-16 (Latin-10)南東ヨーロッパ以下は「ISO-8859-1」のコード表です?!窱SO 8859-1:1987」をインターネットや電子メールで使うために1992年に登録したもので、00-1F, 7F の C0 領域および 80-9F の C1 領域に制御文字を割り當てています。ハイフンなしの「ISO 8859-1」では C0 領域と C1 領域は未定義です。2進上位4bit0000_0001_0010_0011_0100_0101_0110_0111_1000_1001_1010_1011_1100_1101_1110_1111_下位4bit16進0_1_2_3_4_5_6_7_8_9_A_B_C_D_E_F__0000_0SP0@P`pNBSP°àDàe_0001_1!1AQaq?±á?á?_0010_2"2BRbr¢2?òaò_0011_3#3CScs£3?ó?ó_0100_4$4DTdt¤′????_0101_5%5EUeu¥μ????_0110_6&6FVfv|?????_0111_7'7GWgw§·?×?÷_1000_8(8HXhx¨?è?è?_1001_9)9IYiy?1éùéù_1010_A*:JZjzaoêúêú_1011_B+;K[k{??????_1100_C,N^n~???T?t_1111_F/?O_oDELˉ?????青のコード「NBSP」はノーブレークスペース (no-break space, non-breaking space, NBSP) です。スペースの箇所での自動的な改行(行の折り返し)を防ぐ特殊なスペースです?!窼HY」はソフトハイフン (soft hyphen) です。テキストデータで任意に使われる、単語內のハイフネーション(ハイフンを挿入して改行すること)の位置を指示するための書式文字です。全角文字目次へ↑

日本語には、ひらがな、カタカナ、漢字と合わせてかなりの種類の文字が存在します。1バイトの256文字ではとても足りません。そこで、ISO 2022 の7ビットの仕組みを元に日本獨自の文字コード規格が作られました。ここで通稱全角文字と呼ばれる文字コードが登場したわけです。このコードは2バイト(16ビット)で表現されることが多いので、2バイト文字と呼ばれることがあります。

以下は1978年に「JIS C 6226」として制定され、1987年に「JIS X 0208」に移行した規格の説明です。ISO 2022 の GL集合の94文字集合を想定して、94×94 = 8,836 の文字集合表を作ります。第1區~第94區、第1點~第94點のマトリクスに以下のように文字を割り當てました。

區の部分を第1バイトの16進で「21~7E」に対応させ、點の部分を第2バイトの「21~7E」に対応させて符號化(エンコーディング)したものが通稱 JIS コードと呼ばれるものです。この符號化を上手にやることによって、既存のASCIIコード、特に制御文字との共存ができるようになるわけです。以下は文字集合區點コードと符號化したJISコードの対応表です。點01020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394第2バイト2122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E區01第1バイト21SP、。,.?:;?!゛゜′`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇0222◆□■△▲▽▼※〒→←↑↓〓∈?????∪∩∧∨¬????∠⊥⌒??≡≒??√∽∝∵∫??‰???????03230123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0424ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん0525ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ0626ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω0727АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя0828─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂0929102A112B122C132D142E152F1630亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦蘆鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺醫井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭1731院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦噓唄欝蔚鰻姥廄浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悅謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奧往応1832押旺橫歐毆王翁襖鴬鴎黃岡沖荻億屋憶臆桶牡乙俺卸恩溫穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙畫臥芽蛾賀雅餓駕介會解回塊壊廻快怪悔恢懐戒拐改1933魁晦械?;医缃越}芥蟹開階貝凱劾外咳害崖慨概涯礙蓋街該鎧骸浬馨蛙垣柿蠣鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革學岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹葉椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱2034粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼巖翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮機旗既期棋棄2135機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍卻客腳虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給舊牛去居巨拒拠挙渠虛許距鋸漁禦魚亨享京2236供俠僑兇競共兇協匡卿叫喬境峽強彊怯恐恭挾教橋況狂狹矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句區狗玖矩苦軀駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈2337掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形徑恵慶慧憩掲攜敬景桂渓畦稽系経継繋罫莖荊蛍計詣警軽頚鶏蕓迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲2438検権牽犬獻研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向2539后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫號合壕拷濠豪轟麹克刻告國穀酷鵠黒獄漉腰甑忽惚骨狛込263A此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷273B察拶撮擦札殺薩雑皐鯖捌錆鮫皿曬三傘參山慘撒散桟燦珊産算纂蠶讃賛酸餐斬暫殘仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時283C次滋治爾璽痔磁示而耳自蒔辭汐鹿式識鴫竺軸宍雫七叱執失嫉室悉濕漆疾質実蔀篠偲柴芝屢蕊縞舎寫射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪壽授樹綬需囚収周293D宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑??s粛塾熟出術述俊峻春瞬竣舜駿準循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助敘女序徐恕鋤除傷償303E勝匠升召哨商唱嘗奨妾娼宵將小少尚莊床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照癥省硝礁祥稱章笑粧紹肖菖蔣蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾條杖浄狀畳穣蒸譲醸錠囑埴飾313F拭植殖燭織職色觸食蝕辱尻伸信侵唇娠寢審心慎振新晉森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚盡腎訊迅陣靭笥諏須酢図廚逗吹垂帥推水炊睡粋翠衰遂酔錐錘隨瑞髄崇嵩數樞趨雛據杉椙菅頗雀裾3240澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲棲正清牲生盛精聖聲製西誠誓請逝醒青靜斉稅脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設竊節説雪絶舌蟬仙先千占宣専尖川戦扇撰栓栴泉淺洗染潛煎煽旋穿箭線3341繊羨腺舛船薦詮賎踐選遷銭銑閃鮮前善漸然全禪繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創雙叢倉喪壯奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥爭痩相窓糟総綜聡草荘葬蒼藻裝走送遭鎗霜騒像増憎3442臓蔵贈造促側則即息捉束測足速俗屬賊族続卒袖其揃存孫尊損村遜他多太汰詑唾墮妥惰打柁舵楕陀駄騨體堆対耐岱帯待怠態戴替泰滯胎腿苔袋貸退逮隊黛鯛代臺大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只3543叩但達辰奪脫巽竪辿棚谷貍鱈樽誰丹単嘆坦擔探旦歎淡湛炭短端簞綻耽膽蛋誕鍛団壇弾斷暖檀段男談値知地弛恥智池癡稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡著中仲宙忠抽晝柱注蟲衷註酎鋳駐樗瀦豬苧著貯丁兆凋喋寵3644帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂摑槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓3745邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛點伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥礪努度土奴怒倒黨冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盜淘湯濤燈燈當痘禱等答筒糖統到3846董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒獨読栃橡凸突椴屆鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那內乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐邇匂賑肉虹廿日乳入3947如尿韮任妊忍認濡禰禰寧蔥貓熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剝博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麥4048函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蠻匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美4149鼻柊稗匹疋髭彥膝菱肘弼必畢筆逼檜姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服424A福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉寶峰峯崩庖抱捧放方朋434B法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲樸牧睦穆釦勃沒殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俁又抹末沫迄侭繭麿萬慢満444C漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野彌矢厄役約薬訳躍靖柳藪鑓愉愈油癒454D諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余與譽輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踴遙陽養慾抑欲沃浴翌翼淀羅螺裸來萊頼雷洛絡落酪亂卵嵐欄濫藍蘭覧利吏履李梨理璃464E痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷勵嶺憐玲禮苓鈴隷零霊麗齢暦歴列劣烈裂廉戀憐漣煉簾練聯474F蓮連錬呂魯櫓爐賂路露労婁廊弄朗樓榔浪漏牢狼篭老聾蝋郎六麓祿肋録論倭和話歪賄脇惑枠鷲亙亙鰐詫藁蕨椀灣碗腕4850弌丐丕個丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶從仍仄仆仂仗仞仭仟價伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖傯偸傀傚傅傴傲4951僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻兒兀兒兌兔兢竸兩兪兮冀冂囘冊冉冏冑冓冕冖冤冦冢冩冪冫決冱沖冰況冽凅涼凜幾處凩憑凰凵凾刄刋刔刎刧刪刮刳剎剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨5052辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷廠厖厠廈厥廝厰厶參簒雙叟曼燮叮叨叭叺吁吽呀聽吭吼吮吶吩吝呎詠呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨5153咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉5254圈國圍圓團圖嗇圜圦圷圸坎圻址壞坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛夢夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩5355奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓5456屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼廣庠廁廂廈廐廏5557廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾棄弉彝彜弋弒弖弩弭弸彁彈彌彎彎彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍懼悃悚5658悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛5759戞戡截戮戰戲戳扁扎捍扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇拋拉挌拮拱挧掛挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼585A據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙無旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼595B曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷桿杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙檔桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾槨棊椈棘椢椦棡椌棍605C棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣615D檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘗櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓氣氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾625E沺泛泯泙淚洟衍洶洫洽洸洙洵洳灑洌浣涓浤浚浹浙涎涕濤涅淹渕淵涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌635F漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮煙烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼6460燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧猶犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢瑯瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑤瑾璋璞璧瓊瓏瓔珱6561瓠瓣瓧瓩甕瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇疇疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼皰痍痊癢痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰6662癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍蓋盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眥眛眷眸睇睚睨睫睛睥睿睪睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬6763磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟稟稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐6864筺笄筍筍筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏箏箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粵粭粢粫粡粨粳粲粱糧粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆6965紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺7066罅罌罍罎罐網罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿恥聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脈胯胱脛脩脣脯腋7167隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣茍苒苴苳苺莓范苻蘋苞茆苜茉苙7268茵茴茖茲茱荀茹薦荅茯茫茗茘蒞莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈7369蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙746A蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞756B襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫766C譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊776D蹇蹉蹌蹐蹈蹙蹤蹠蹤蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅跡迺逑逕逡逍逞逖逋逧逶逵逹迸786E遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮796F錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞8070陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隸隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韻頏頌頸頤頡頷頽顆顏顋顫顯顰8171顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷8272髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈8373鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麩麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠8474堯槇遙瑤凜熙85758676877788788979907A917B927C937D947E

その後、1990年に JIS X 0212 という94區94點の文字集合規格が制定されました。これは通稱補助漢字と呼ばれています。

2000年には JIS X 0213 という2面94區94點の文字集合規格が制定されました。第1面は、JIS X 0208 を元に、未定義領域に第3水準の漢字が加えられています。第2面には、第4水準の漢字があります。

日本語文字コード目次へ↑

日本語は、ひらがな、カタカナ、漢字と沢山の文字を必要とします。日本でコンピュータが普及していくと共に、たくさんの種類の文字コードが開発されました。

前節の JIS X 0208 の區點は「文字集合」と呼ばれるものです。この文字集合を「どのように2進數のバイトコードに割り振るか」ということを符號化といいます。符號化が完了した文字情報が「文字コード」です。様々な符號化の中で「JISコード」「シフトJISコード」「EUCコード」の3種類が日本でよく使われるようになりました。処理のしやすさや、通信のしやすさなど、一長一短があるだけでなく、歴史的背景も加わり現在も混在してる狀況です。メールやホームページの文字化けの原因になったり、ファイル名に日本語を使うと他のパソコンではそのファイル名が文字化けして仕事にならないことがあったりします。

JISコード正式名稱:ISO-2022-JP電子メールで使われている文字コード過去、文字データは7bitが當たり前で電子メールメールを中継するサーバの中には7ビット文字しか中継できないものがありました。そのようなサーバが8ビット文字で書かれているメールを中継すると、最上位ビットが落ちて大変なことが起こったりしました。そこでメール通信プロトコルのSMTPでは7bit文字しか扱わないという規定になっています?,F在ではMIMEという拡張で8bit文字だけでなく、畫像や動畫のバイナリファイルも扱えるようになってます。EUCコード正式名稱:EUC-JPEUC(Extended UNIX Code の略)UNIX で日本語を扱うために使用されている。AT&T が1985年に策定した EUC の各國定義部分に日本語文字集合の割り當てを定義したものLinux などの UNIX 系の OS の標準だった(現在はUTF-8が標準で、ユーザによって変更可)シフトJISコード正式名稱:Shift_JIS符號位置を複雑に移動(シフト)させて英數字と半角カナと全角文字を混在させる雑誌のアスキーや、マイクロソフトが制定に関わった文字コードWindows では、1982年に開発され、シフトJISの元になった CP932(Windows-31J)を日本語コードに用いています。これには JIS X 0208 では未定義の場所に、機種依存文字といわれる「①」「②」や「Ⅲ」「Ⅳ」や「?」「?」などの文字が配置されています。このようなシフトJISと微妙に違うコードのことを「シフトJISの亜種」と呼びます。文字コードの変換

文字コードの変換には変換ツールを使う方法があります?!竛kf」や「iconv」などが有名です。テキストエディタの中には好きな文字コードに変換して、ファイルを保存できるものがあります。

Web 上で手軽に確認できるツールに 文字コードの16進ダンプ があります。とりあえずはこれを試してみると良いでしょう。

次の文字列の文字コードを確認してみましょう。

abあいc愛de??ISO-2022-JP では次のようになります。61 62 1B 24 42 24 22 24 24 1B 28 42 63 1B 24 42 30 26 1B 28 42 64 65 1B 28 49 31 32EUC-JP では次のようになります。61 62 A4 A2 A4 A4 63 B0 A6 64 65 8E B1 8E B2Shift-JIS では次のようになります。61 62 82 A0 82 A2 63 88 A4 64 65 B1 B2それぞれどのような仕組みなのか説明します。JISコード

次の文字列で黒字は1バイト文字、青字の部分が2バイト文字です。

abあいc愛de??次は、上の文字列を16進コードで表したものです。赤字の部分はエスケープシーケンス(escape sequence)と呼ばれるGL集合を切り替えるための制御コードになります。61 62 1B 24 42 24 22 24 24 1B 28 42 63 1B 24 42 30 26 1B 28 42 64 65 1B 28 49 31 32エスケープシーケンス「1B 24 42」が現れたらそれ以降の文字には「JIS X 0208」の符號化集合を用います?!?4 22」はひらがなの「あ」に、「24 24」はひらがなの「い」に、「30 26」は漢字の「愛」になります。

エスケープシーケンスが現れたら、それ以降のGL集合を次のような符號化文字集合に置き換えます。文字列表現は16進表現をASCII文字列で表現したものです?!?B」はアスキー制御コードの「ESC」でそれに続く文字列によってどの集合に切り替えるかを指定します。

16進表現文字列表現符號化文字集合1B 28 42ESC ( BISO/IEC 646(ASCII)1B 28 4AESC ( JJIS X 0201 ラテン(半角英數)1B 28 49ESC ( IJIS X 0201 カナ(半角カナ)1B 24 40ESC $ @JIS C 6226-1978(第1?第2水準漢字)1B 24 42ESC $ BJIS X 0208-1983(第1?第2水準漢字)1B 24 40 1B 24 42ESC $ @ ESC $ BJIS X 0208-1990(第1?第2水準漢字)1B 24 28 44ESC $ ( DJIS X 0212-1990(補助漢字)1B 24 28 4FESC $ ( OJIS X 0213:2000 1面(第1?第2水準漢字)1B 24 28 51ESC $ ( QJIS X 0213:2004 1面(第1?第2水準漢字)1B 24 28 50ESC $ ( PJIS X 0213:2000 2面(第3?第4水準漢字)

JISコードは文字集合を切り替えるたびにエスケープシーケンスが入るので、バイト列が長くなります。8ビットJISの半角カナを使わなければ、最上位ビットが必ず0になるので、電子メールの通信に最適です。

以下、1バイト、2バイトのどの位置に文字集合があるかの図になります。JIS區點文字集合の區と點に16進數で20(10進數で32)を足すと、第1バイトとの第2バイトのコードがすぐに計算できます。

EUCコード

次の文字列で黒字は1バイト文字、青字の部分が2バイト文字です。

abあいc愛de??次は、上の文字列を16進コードで表したものです。バイト列の最上位ビットが1ならば日本語文字であることが確定するので、エスケープシーケンスは必要ありません。また、半角カナ文字は2バイト文字になります。61 62 A4 A2 A4 A4 63 B0 A6 64 65 8E B1 8E B28以降の16進數は最上位ビットが1になります?!窤4 A2」はひらがなの「あ」に、「A4 A4」はひらがなの「い」に、「B0 A6」は漢字の「愛」に、「8E B1」は半角カナの「?」に、「8E B2」は半角カナの「?」の文字コードです。

以下、1バイト、2バイトのどの位置に文字集合があるかの図になります。JIS區點文字集合の區と點に16進數でA0(10進數で160)を足すと、第1バイトとの第2バイトのコードがすぐに計算できます。第1バイトが「8E」の時は半角カナ文字になります。第1バイトが「8F」の時は、「A1~FE」の2バイトを合わせた3バイトで補助漢字の94×94の文字集合を呼び出します。第3水準、第4水準漢字は EUC-JIS-2004 で扱えるようになりました。

シフトJISコード

次の文字列で黒字は1バイト文字、青字の部分が2バイト文字です。

abあいc愛de??次は、上の文字列を16進コードで表したものです。バイト列の最上位ビットが1ならば日本語文字であることが確定するので、エスケープシーケンスは必要ありません。61 62 82 A0 82 A2 63 88 A4 64 65 B1 B2「82 A0」はひらがなの「あ」に、「82 A2」はひらがなの「い」に、「88 A4」は漢字の「愛」に、「B1」は半角カナの「?」に、「B2」は半角カナの「?」の文字コードです。

以下、1バイト、2バイトのどの位置に文字集合があるかの図になります。バイトの最上位ビットが0ならASCII文字、最上位ビットが1なら日本語文字になります?!窤1~DF」なら半角カナが確定するように、JIS區點コードの第1バイトが半角カナに被らないようになってます。JIS區點文字集合を4つの領域に分けて以下の図のように配置します。計算式で表すと、次のようになります。第1バイトの計算(區-1)÷2 を行って小數點以下を切り捨てる

區が1~62それに16進數で81(10進數で129)を足す區が63~94それに16進數でC1(10進數で193)を足す第2バイトの計算區が奇數點が1~63點に16進數で3F(10進數で63)を足す點が64~94點に16進數で40(10進數で64)を足す區が奇數點に16進數で9E(10進數で158)を足す計算式はややこしいですが、次の図をクリックして拡大して見ると何をやってるのか分かります。要するに、第1バイトが半角カナと被るようになってしまう事を避けているわけです。Unicode目次へ↑

Unicode(ユニコード)登場以前は、國ごとや言語ごとにばらばらに文字コードを定めていました。インターネット社會が世界中に広がり、様々な國との情報のやり取りも重要になってきました。1980年代にゼロックス社が提唱し、マイクロソフト、アップル、IBM等が參加するユニコードコンソーシアムが1991年に設立されました。1993年に國際規格ISO/IEC 10646が作られ標準化されました。

Unicodeは策定當初、2バイト(216=164=65536ビット)で十分だと考え、固定長2バイトで世界中の文字の全てを納める計畫でした。日本語の文字コードの1バイトと2バイトの可変長の経験から、可変長の文字コードの扱いは面倒であることが分かっていたからです。日本語の漢字は第1水準、第2水準合わせて6千文字程度で、日中韓を合わせても2萬文字程度で済み、まだ3萬文字程度の余裕があると考えられていました。更に文字を追加するために言語學者にも參畫してもらったところ、マイナーな文字が次々と出てきて固定長2バイトにすることをあきらめました?,F在では日本の攜帯電話文化で広まった絵文字も次々と収録されています。

文字集合 UCS

キャラクターセット(文字集合)とは JIS X 208 のような文字集合のことです。JIS X 208 では文字集合を10進數の區?點のマトリックスで管理していました。JIS X 213 では文字集合を2面に拡張し、面?區?點で管理していました。ユニコードでは文字集合を16進數のコードポイントというもので管理しています。UCS-2では16進數で4桁のコードポイントが割り振られていて、コードポイントは U+XXXX (XXXXは16進數4桁)で表現されます。UCS-4では16進數で8桁のコードポイントが割り振られています。

キャラクターセット(文字集合)には以下のものがあります。

UCS-2Universal Character Set coded in 2 octets2バイト(2つのオクテット、2×8=16ビット)のキャラクターセットUCS-4のサブセット(部分集合)U+XXXX (16進數4桁XXXX)のコードポイントで表現U+0000 ~ U+FFFF の文字を用いるU+XXYY の第1バイト XX の部分を區(row)、第2バイト YY の部分を點(cell)というUCS-4Universal Character Set coded in 4 octets4バイト(4つのオクテット、4×8=32ビット)のキャラクターコードセットUCS-2に加えて更に多くの文字を含むU+XXXXXXXX (16進數8桁)のコードポイントU+00000000 ~ U+0000FFFF の文字に加えて U+00010000 ~ U+7FFFFFFF の文字を含むU+WWXXYYZZ の第1バイト WW の部分を群(group)、第2バイト XX の部分を面(plane)、第3バイト YY の部分を區(row)、第4バイト ZZ の部分を點(cell)という現在のUnicodeでは U+0000 ~ U+10FFFF までの範囲のみを使用することにしたため、群という用語は廃止された、面數は16進數で0~10(10進數で0~16)面まで

ユニコードのコードポイントはユニコードコンソーシアムの [The Unicode Standard] → [Code Charts] に載っています。例えば、日中韓の共通漢字は [East Asian Scripts] のカテゴリーにある CJK Unified Ideographs (Han) (35MB) のフォント埋め込み PDF ファイルを見ることで、16進數表示のコードポイントと、中國(C)、日本(J)、韓國(K)の字形が分かります。顔文字は [Emoji & Pictographs] にある Emoticons にあります。

PDF ファイルは使いにくいので、Wikipedia の Unicode一覧表 を利用するのも良いでしょう、自分の端末にフォントが入っていれば、コードポイントと字形の対応が分かります。日中韓の共通漢字は 3000-9FFF に、絵文字は 1F000-1FFFF にあります。フォントがないコードは通稱「豆腐」と呼ばれている「□」が表示されます。他にも「Unicode 一覧」で検索すると様々な表が出てきます。こちらの Unicode表 では JIS X 0208 の文字 と、JIS X 0213 で追加された文字、が色分けされています。

以下、コードポイントの範囲の大體の內訳です。

範囲説明U+0000~U+007FASCII文字U+0080~U+00FFLatin-1文字U+0100~U+2FFFギリシア文字やアラビア文字などU+3000~U+3FFFひらがな、カタカナなどU+3000~U+303F郵便マーク等の特殊記號U+3040~U+309FひらがなU+30A0~U+30FFカタカナU+4000~U+9FFF中國?日本?韓國の漢字などU+A000~U+DFFFハングルなどU+F000~U+FFFF漢字、全角英數字、半角カナなどU+010000~U+10FFFF拡張文字。使用頻度の低い漢字などU+00110000~U+FFFFFFFF未使用第0面の細かな內訳は Roadmap to the BMP を見ると良いでしょう。左の Tables から、他の面の內訳も見ることができます。符號化方法 UTF

符號化(エンコーディング)とは「文字集合からどのようにして、実際にコンピュータで利用するデータ列(バイト列)に変換するか」というやり方のことです。

ユニコードの符號化方法には以下のものがあります。(他にもありますが代表的なものです。)

UTF-32Unicode Transformation Format-32 (又は UCS Transformation Format 32)UCS-4 のコードポイントをそのまま4バイトの固定長で符號化するバイトオーダーの違いでリトルエンディアン(LE: Little Endian)とビッグエンディアン(BE: Big Endian)の2種類があるUTF-16Unicode Transformation Format-16 (又は UCS Transformation Format 16)UCS-2 のコードポイントをそのまま2バイトの固定長で符號化する拡張として、U+10000~U+10FFFF までの文字をサロゲーションペア(2×2で4バイト)を使って符號化するバイトオーダーの違いでリトルエンディアン(LE: Little Endian)とビッグエンディアン(BE: Big Endian)の2種類があるUTF-8Unicode Transformation Format-8 (又は UCS Transformation Format 8)UCS-4 を 1~6バイトの可変長で符號化するASCIIコードとの共存が可能バイトオーダーは1種類のみ前出の日本語文字コードで例えると、文字集合は同じ JIS X 208 の、符號化が違う、JISコード、EUCコード、Shift_JISコードの違いに対応します。文字集合には同じUCSを使いますが、符號化が違う、UTF-32、UTF-16、UTF-8、があるということです。エンディアン(バイトオーダー)

バイトオーダー(byte order)とはバイト列を実際にメモリや磁気ディスクに格納する順番のことで、ビッグエンディアンとリトルエンディアンの2種類があります。エンディアン(Endian)とは「ガリバー旅行記」のエピソードに由來する言葉で、卵を丸い側(大きい方)の端から割る人々 (Big Endians) と、尖った側(小さい方)の端から割る人々(Little Endians) との対立が語源です。CPUのレジスタの設計によって、どちらの順でデータを処理するのか変わります。Intel系のCPUを使っているのが多數派ですので、特殊な事情がない限り、リトルエンディアンを使うのが良いでしょう。

リトルエンディアン(Little Endian)最下位ビット(Least Significant Bit)の屬するバイト(Least Significant Byte)を低位のアドレスへ格納していく方式バイナリダンプでは、順序が逆になって表示されるIntel x86 系のCPUで用いられている(Windows PC、近年のMac)通信プロトコル、USB、PCI、ATA、で用いられているビッグエンディアン(Big Endian)最上位ビット(Most significant Bit)の屬するバイト(Most Significant Byte)を低位のアドレスへ格納していく方式バイナリダンプでは、そのままの順で表示される(見た目が分かりやすい)モトローラ 68k CPU 等で用いられている昔のMacやIBMのCPU等で用いられている通信プロトコル、TCP/IP、VME、IEEE1394、で用いられている符號化の仕組み

オンラインにあるUnicode文字ツールで様々な文字のコードポイント(文字番號)や文字コードを調べることができます。以下の表は適當な文字のコードポイントと符號化を調べたものです。有効ビット數の分類は後のUTF-8の説明で使います。

有効ビット數文字コードポイントUTF-32BEUTF-16BEUTF-8UTF-16LEUTF-32LE76U+003600 00 00 3600 363636 0036 00 00 00\U+005C00 00 00 5C00 5C5C5C 005C 00 00 00aU+006100 00 00 6100 616161 0061 00 00 0011áU+00C100 00 00 C100 C1C3 81C1 00C1 00 00 00αU+03B100 00 03 B103 B1CE B1B1 03B1 03 00 00ДU+041400 00 04 1404 14D0 9414 0414 04 00 0016あU+304200 00 30 4230 42E3 81 8242 3042 30 00 00愛U+611B00 00 61 1B61 1BE6 84 9B1B 611B 61 00 00?U+FEFF00 00 FE FFFE FFEF BB BFFF FEFF FE 00 00?U+FF7100 00 FF 71FF 71EF BD B171 FF71 FF 00 0021??U+1F60100 01 F6 01D8 3D DE 01F0 9F 98 813D D8 01 DE01 F6 01 00??U+1F62D00 01 F6 2DD8 3D DE 2DF0 9F 98 AD3D D8 2D DE2D F6 01 00??U+2F8A600 02 F8 A6D8 7E DC A6F0 AF A2 A67E D8 A6 DCA6 F8 02 00コードポイント U+FEFF の文字は、ゼロ幅ノーブレークスペース(ZWNBSP: zero width no-break space)というもので、元々はその文字の場所で改行して欲しくないことを表す制御文字でした。このコードポイントの文字は後で説明する BOM として使われるようになりました。そこで曖昧さを避けるために、コードポイント U+2060 に単語結合子(たんごけつごうし、WJ: word joiner)と呼ばれる文字が追加されました。UTF-32

UTF-32 ではコードポイントをそのまま4バイトの固定長で符號化します。ビッグエンディアンではそのまま、第1バイト、第2バイト、第3バイト、第4バイト、の順番です。リトルエンディアンでは逆順の、第4バイト、第3バイト、第2バイト、第1バイト、の順番です。全ての文字が4バイトになるので、データサイズは大きくなります。

コードポイントUTF-32BEUTF-32LEU+WWXXYYZZWW XX YY ZZZZ YY XX WWUTF-16

UTF-16 では2バイト(16ビット)までのコードポイントでは、コードポイントをそのまま2バイトの固定長で符號化します。ビッグエンディアンではそのまま、第1バイト、第2バイト、の順番です。リトルエンディアンでは逆順の、第2バイト、第1バイト、の順番です。

コードポイントUTF-16BEUTF-16LEU+XXYYXX YYYY XX

ユニコードは當初は2バイト固定長で全ての文字を表す予定でしたが、2バイト(16ビット)では足りなくなって21ビット拡張というものを行いました。17~21ビットで表現できるコードポイント、U+10000 ~ U+10FFFF の領域までの拡張です。これは、新たに plane(面)を16面拡張したことに相當します。

UTF-16 ではサロゲートペア(surrogate pair:代理対)という符號化を行い、4バイト(2バイト2文字)で拡張領域のコードポイントを符號化します。リトルエンディアンでは2文字扱いでバイト列を入れ替えることになります。次の表は、元コードのビット表示から、どのようなやり方でサロゲートペア2文字に変換するかの説明です。

元コードポイント(ビット表示)1文字目2文字目備考xxxxxyyyyyyzzzzzzzzzz110110wwwwyyyyyy110111zzzzzzzzzzwwww = xxxxx-1上位の5ビットの xxxxx は 00001~10000(10進數で1~16)の面番號を表しています。1を引くことで4ビットの wwww で1~16面を0~15(0000~1111)で表現することができます。殘りの16ビットの yyyyyyzzzzzzzzzz は區?點の情報を表しています。面?區?點の情報を2文字に振り分けて、1文字目にはオフセット(offset:基準からのずらし)として 1101100000000000 (16進で D800) を足します。2文字目にはオフセットとして 1101110000000000 (16進で DC00) を足します。サロゲートペアが使用されるため U+D800 ~ U+DFFF のコードポイントは未使用領域になりました。(Shift_JISで半角カナの領域を避けたようなことをしてます。)これによって第1バイトが D8 ~ DF ならサロゲートペアの文字だと判斷できます。

具體例でどのように符號化してるのか見てみましょう。

文字元コードポイント1文字目2文字目備考x xxxx yyyy yyzz zzzz zzzz1101 10ww wwyy yyyy1101 11zz zzzz zzzzwwww = xxxxx-1??0 0001 1111 0110 0000 0001U+01F6011101 1000 0011 1101D8 3D1101 1110 0000 0001DE 010000 = 00001-1???0 0001 1111 0110 0010 1101U+01F62D1101 1000 0011 1101D8 3D1101 1110 0010 1101DE 2D0000 = 00001-1???0 0010 1111 1000 1010 0110U+02F8A61101 1000 0111 1110D8 7E1101 1100 1010 0110DC A60001 = 00010-1?UTF-8

UTF-8 では ASCIIコードとの互換性を保つために可変長の符號化を行います。以下のようにコードポイントの範囲によって、符號化後の文字サイズが違います。

コードポイント範囲有効ビット數元コードポイント(ビット表示)変換方法1バイト目2バイト目3バイト目4バイト目U+0000~U+007F7xxxxxxx1バイト化0xxxxxxxU+0080~U+07FF11xxxxxyyyyyy2バイト化110xxxxx10yyyyyyU+0800~U+FFFF16xxxxyyyyyyzzzzzz3バイト化1110xxxx10yyyyyy10zzzzzzU+10000~U+1FFFFF21xxxyyyyyyzzzzzzwwwwww4バイト化11110xxx10yyyyyy10zzzzzz10wwwwww各バイトのビット列のの始まり方のパターンによって、何バイト化した文字なのかを判斷できるようになっています。2バイト目以降は必ず 10 から始まるパターンになっていて、1バイト目とは同じ始まり方をしないように工夫されています。これを利用すると、全バイト數から、10始まりパターンのバイト數を除けば文字數を計算できることになります(改行やスペースは別に引く必要がある)。ちなみに、コードポイント範囲U+200000~U+3FFFFFFで有効ビット數26のコードポイントは5バイト化、コードポイント範囲U+4000000~U+7FFFFFFFで有効ビット數31のコードポイントは6バイト化、とできますが、現狀では有効ビット數21までの文字しか存在しませんので、最大で4バイトの文字ということになります。

次の表は、有効ビット7桁の場合、どのように符號化して1バイト化するのか、の例です。

文字元コードポイント1バイト目xxx xxxx0xxx xxxx6011 0110U+00360011 011036\101 1100U+005C0101 11005Ca110 0001U+00610110 000161

次の表は、有効ビット11桁の場合、どのように符號化して2バイト化するのか、の例です。

文字元コードポイント1バイト目2バイト目xxx xxyy yyyy110x xxxx10yy yyyyá000 1100 0001U+00C11100 0011C31000 000181α011 1011 0001U+03B11100 1110CE1011 0001B1Д100 0001 0100U+04141101 0000D01001 010094

次の表は、有効ビット16桁の場合、どのように符號化して3バイト化するのか、の例です。コードポイント U+FEFF の文字は、後で説明するBOMとして使われるようになった、ゼロ幅ノーブレークスペース(ZWNBSP: zero width no-break space)というものです。

文字元コードポイント1バイト目2バイト目3バイト目xxxx yyyy yyzz zzzz1110 xxxx10yy yyyy10zz zzzzあ0011 0000 0100 0010U+30421110 0011E31000 0001811000 001082愛0110 0001 0001 1011U+611B1110 0110E61000 0100841001 10119B?1111 1110 1111 1111U+FEFF1110 1111EF1011 1011BB1011 1111BF?1111 1111 0111 0001U+FF711110 1111EF1011 1101BD1011 0001B1

次の表は、有効ビット21桁の場合、どのように符號化して4バイト化するのか、の例です。

文字元コードポイント1バイト目2バイト目3バイト目4バイト目x xxyy yyyy zzzz zzww wwww1111 0xxx10yy yyyy10zz zzzz10ww wwww??0 0001 1111 0110 0000 0001U+01F6011111 0000F01001 11119F1001 1000981000 000181??0 0001 1111 0110 0010 1101U+01F62B1111 0000F01001 11119F1001 1000981010 1101AD??0 0010 1111 1000 1010 0110U+02F8A61111 0000F01010 1111AF1010 0010A21010 0110A6

UTF-8 では日本語の文字の殆どは3バイトになります。UTF-16 では日本語の文字は殆ど2バイトです。データ量を少なくするには、日本語交じりのプログラミングやHTMLファイルなどを書くときは UTF-8 が良いでしょうし、日本語のみの長文では UTF-16 が良いでしょう。

BOM(Byte Order Mark)

バイトオーダー等の符號化情報をファイルの読み込み時に判斷できるように、ファイルの先頭に埋め込んだバイトコードのことを ボム(BOM: Byte Order Mark)といいます。

符號化形式BOM解釈UTF-32BEなしBig EndianUTF-32LEなしLittle EndianUTF-3200 00 FE FFBig EndianUTF-32FF FE 00 00Little EndianUTF-16BEなしBig EndianUTF-16LEなしLittle EndianUTF-16FE FFBig EndianUTF-16FF FELittle EndianUTF-8なしBOMなしは UTF-8N と呼ばれることがあるUTF-8EF BB BFUTF-8 には Big も Little もないので BOM を付ける意味がありませんが、UTF-8 だと明示するためにつけることがあります。UnicodeのテキストファイルにはBOM付きテキストとBOMなしテキストが存在します。このBOMが時々文字通り地雷(bomb)になることがあるので、気を付けてください。BOMをつけることが必須とはされてこなかったため、アプリによってはBOMがついているために誤動作したり、逆にBOMがついていないために誤動作したりするケースがあります?,F在ではBOMのある無しに関係なく、自分でファイルを判別するアプリが多いため問題を起こすことは少ないのですが、例外もあります。

Windows のメモ帳では常にBOMを付ける仕様になっています。ファイルを Unicode 形式や UTF-8 で保存してバイナリを確認してみてください。Unicode 形式で保存するとファイルの先頭に「FF FE」がつきます。UTF-8 形式で保存するとファイルの先頭に「EF BB BF」がつきます。BOMの付ける付けないを切り替えられるテキストエディタを使うことをお勧めします。

例えば、次の文章の16進ダンプを様々な符號化形式でみてみましょう。一文字に対応するコードに背景色を付けます。

abc次は、UTF-32BE、の16進ダンプです。先頭にBOMが入ってない UTF-32 ビッグエンディアンの文章を UTF-32BE と呼ぶようになりました。00 00 00 41 00 00 00 42 00 00 00 43次は、UTF-32LE、の16進ダンプです。先頭にBOMが入ってない UTF-32 リトルエンディアンの文章を UTF-32LE と呼ぶようになりました。41 00 00 00 42 00 00 00 43 00 00 00次は、UTF-32 の16進ダンプです。先頭のBOMでビッグエンディアンの文章だと判斷します。00 00 FE FF 00 00 00 41 00 00 00 42 00 00 00 43次は、UTF-32 の16進ダンプです。先頭のBOMでリトルエンディアンの文章だと判斷します。FF FE 00 00 41 00 00 00 42 00 00 00 43 00 00 00次は、UTF-16BE、の16進ダンプです。先頭にBOMが入ってない UTF-16 ビッグエンディアンの文章を UTF-16BE と呼ぶようになりました。00 41 00 42 00 43次は、UTF-16LE、の16進ダンプです。先頭にBOMが入ってない UTF-16 リトルエンディアンの文章を UTF-16LE と呼ぶようになりました。41 00 42 00 43 00次は、UTF-16 の16進ダンプです。先頭のBOMでビッグエンディアンの文章だと判斷します。FE FF 00 41 00 42 00 43次は、UTF-16 の16進ダンプです。先頭のBOMでリトルエンディアンの文章だと判斷します。FF FE 41 00 42 00 43 00次は、UTF-8 の16進ダンプです。先頭のBOMでUTF-8の文章だと判斷します。UTF-8ではBOMをつける意味は全くありません。EF BB BF 41 42 43次は、UTF-8 の16進ダンプです。BOMなしのUTF-8の文章を UTF-8N と呼ぶことがあります。41 42 43Windows メモ帳目次へ↑

Windows OS に標準で付屬のソフト(アプリ)を「アクセサリ」といいます。アクセサリの中に「メモ帳」又は「notepad」というソフトがあります。これはテキストエディタと呼ばれるソフトで、ワープロのような文字の裝飾などがない「プレーンテキスト」と呼ばれる文章を編集するソフトです。純粋な文字データのみを編集し、保存するソフトになります。

Windows 10 に付屬の「メモ帳」は保存する際、次の4つの文字コードが選択できます。

それぞれ次の文字コードになります。ANSIWindows-31J(Shift-JIS の亜種)UnicodeUTF-16 Little Endian の BOM つきUnicode big endianUTF-16 Big Endian の BOM つきUTF-8UTF-8 の BOM つき

Windows 10 19H1 でのメモ帳の機能強化で保存形式の標準が大きく変わりそうです?!弗幞鈳ぁ工硕鄶丹胃纳?、BOMなしUTF-8がデフォルト保存形式に ~「Windows 10 19H1」

(藤本の擔當講義に戻る)??(Tipsに戻る)
免責聲明:非本網注明原創的信息,皆為程序自動獲取互聯網,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責;如此頁面有侵犯到您的權益,請給站長發送郵件,并提供相關證明(版權證明、身份證正反面、侵權鏈接),站長將在收到郵件12小時內刪除。
德甲体育-欢迎您_YABO网页登陆-官网-欢迎您 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>