文字コードの学習1
文字コードのバイナリ確認
1byte文字と2byte文字の切り替えなどがあるので、「aあ1ア」を例に各文字コードのバイナリを調べてみる。
■使用エディタ:サクラエディタ Ver.2.2.0.1、UTF32用にMIFES10
文字 | Unicode | UTF-16 | UTF-32 | Shift JIS | JIS213 | EUC-JP |
---|---|---|---|---|---|---|
a | U+0061 | 0x0061 | 0x61000000 | 0x61 | 1-3-65 | 0x61 |
あ | U+3042 | 0x3042 | 0x42300000 | 0x82A0 | 1-4-2 | 0xA4A2 |
1 | U+0031 | 0x0031 | 0x31000000 | 0x31 | 1-3-17 | 0x31 |
ア | U+FF71 | 0xFF71 | 0x71FF0000 | 0xB1 | - | 0x8EB1 |
文字コード | バイナリ | バイト数 |
---|---|---|
JIS | 61 - 1B-24-42 - 24-22 - 1B-28-42 - 31 - 1B-28-49 - 31 - 1B-28-42 | 17 |
SJIS | 61 - 82-A0 - 31 - B1 | 5 |
EUC_JP | 61 - A4-A2 - 31 - 8E - B1 | 6 |
UTF-8 | 61 - E3-81-82 - 31 - EF-BD-B1 | 8 |
UTF-16 | FF-FE - 61-00 - 42-30 - 31-00 - 71-FF | 10 |
UTF-32 | 61-00-00-00 - 42-30-00-00 - 31-00-00-00 - 71-FF-00-00 | 16 |
文字集合
代表的なものとして「JIS X 0208」と「UNICODE」がある。「JIS X 0208」は「区(行)」と「点(列)」で文字の位置を判別する。
JISコード(ISO-2022-JP)
コード:[ESC]:0x1B(27)、$:0x24(36)、(:0x28(40)、B:0x42(66)、I:0x49(73)
漢字の始まり:ESC$B
ASCIIの始まり:ESC(B
半角カタカナの始まり:ESC(I
半角カナの「ア」は31でASCIIの領域とぶつかるのでエスケープシーケンスを使用しているが、その他の方法もあるよう。
EUC-JP
半角カナは前に0x8Eをおいた2byte表現となる。
補助漢字は0x8Fをおいた3byte表現となる。(例:繫U+7E4B)
UTF-8
ASCIIと互換性を持たせるためにASCIIと同じ部分は1yte。
「あ」はU+3042で2進表記にする。
数値の3042だと0000 1011 1110 0010となるが、
文字の3042として0011 0000 0100 0010とする、
1110yyyy 10yxxxxx 10xxxxxx
11100011 10000001 10000010(0xE38182)
https://ja.wikipedia.org/wiki/UTF-8
ひらがなの「あ」は3byteと、1文字を表すbyte長は1~4byteと可変となる。ただし、4byteのUTF-8が扱えないシステムもある。
JIS X 0213の第3・第4水準漢字の一部が4byteで表される。(例「𠈓」人偏に両。U+20213。0xF0A08893)
UTF-16(Unicode)
Windowsのメモ帳やサクラエディタではUnicodeとして表記されている。
先頭にBOM(ByteOrderMark)の2byteが付与される。
0xFFFE:リトルエンディアン
0xFEFF:ビッグエンディアン
1文字を表すbyte長は2byte固定だが、1文字を表すのに4byteを使用するサロゲートペアがある。
(例「𠈓」人偏に両。U+20213。0x40D813DE)
参考URL
文字コード表:http://charset.7jp.net/jis.html
半角カナ:http://mikeneko.creator.club.ne.jp/~lab/kcode/hankana.html
文字化け
「あ」が化ける場合の想定
SJIS:0x82A0
EUC:0xA4A2
UTF16:0x4230
Author And Source
この問題について(文字コードの学習1), 我々は、より多くの情報をここで見つけました https://qiita.com/kero3/items/868bf2b57de3fcc3973f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .