回答編集履歴
3
Windowsメモ帳の出力が間違っていたので修正
answer
CHANGED
@@ -11,9 +11,9 @@
|
|
11
11
|
|
12
12
|
といったものがあります。実際に文字コードとして意識するのは、こちらの方です。
|
13
13
|
Linux や Mac の世界では、UTF-8 が一般的です(XML も UTF-8 であることが前提となっています)。ですが Windows においては UTF-16 のことを「Unicode」と表現するので、ここを押さえておかないと混乱します。
|
14
|
-
※Windows の「メモ帳」の「Unicodeテキスト」は、UTF-16BE です
|
15
14
|
|
16
15
|
さらにいうと、UTF-16 と UTF-32 には、エンディアン(多バイトを表すストリームの場合に、どちらが上位バイトになるかを決める)が絡みます。古くからの慣習に従い、Big Endian と Little Endian になっていますが、特にプロトコルなどで強制しない場合は Big Endian であると仮定されます。(明示的にエンディアンを表すための Byte Order Mark もあります)
|
16
|
+
※Windows の「メモ帳」の「Unicode」はUTF-16LE、「Unicode big endian」はUTF-16BE です
|
17
17
|
|
18
18
|
「あ」は、
|
19
19
|
Unicode: U+3042
|
2
各符号化における「あ」のコードを例示。エンディアンについて補足
answer
CHANGED
@@ -10,4 +10,15 @@
|
|
10
10
|
* UTF-32 (4byte で1文字を表す)
|
11
11
|
|
12
12
|
といったものがあります。実際に文字コードとして意識するのは、こちらの方です。
|
13
|
-
Linux や Mac の世界では、UTF-8 が一般的です(XML も UTF-8 であることが前提となっています)。ですが Windows においては UTF-16 のことを「Unicode」と表現するので、ここを押さえておかないと混乱します。
|
13
|
+
Linux や Mac の世界では、UTF-8 が一般的です(XML も UTF-8 であることが前提となっています)。ですが Windows においては UTF-16 のことを「Unicode」と表現するので、ここを押さえておかないと混乱します。
|
14
|
+
※Windows の「メモ帳」の「Unicodeテキスト」は、UTF-16BE です
|
15
|
+
|
16
|
+
さらにいうと、UTF-16 と UTF-32 には、エンディアン(多バイトを表すストリームの場合に、どちらが上位バイトになるかを決める)が絡みます。古くからの慣習に従い、Big Endian と Little Endian になっていますが、特にプロトコルなどで強制しない場合は Big Endian であると仮定されます。(明示的にエンディアンを表すための Byte Order Mark もあります)
|
17
|
+
|
18
|
+
「あ」は、
|
19
|
+
Unicode: U+3042
|
20
|
+
UTF-16: 0x3042 (Unicodeで U+0000~U+FFFF は、UTF-16 と同じコードになる)
|
21
|
+
UTF-16BE: 0x3042(UTF-16 は未指定なので Big Endian となります)
|
22
|
+
UTF-16LE:0x4230(Little Endian だと順番が逆になる)
|
23
|
+
UTF-8: 0xE38182
|
24
|
+
となります。
|
1
誤字修正
answer
CHANGED
@@ -5,9 +5,9 @@
|
|
5
5
|
通常 Unicode といった場合は 1. を指します。ですが 2. があるように、「同じ Unicode でも符号化が異なるいくつもの方式がある」のです。
|
6
6
|
|
7
7
|
このいくつもの方式として、
|
8
|
-
* UTF-8 (1byte~
|
8
|
+
* UTF-8 (1byte~4byteまでの可変長で1文字を表す)
|
9
9
|
* UTF-16 (2byte で1文字を表す。ただし基本多言語面以外はサロゲートペアを使って4byteで表す)
|
10
10
|
* UTF-32 (4byte で1文字を表す)
|
11
11
|
|
12
12
|
といったものがあります。実際に文字コードとして意識するのは、こちらの方です。
|
13
|
-
Linux や Mac の世界では、UTF-8 が一般的です。ですが Windows においては UTF-16 のことを「Unicode」と表現するので、ここを押さえておかないと
|
13
|
+
Linux や Mac の世界では、UTF-8 が一般的です(XML も UTF-8 であることが前提となっています)。ですが Windows においては UTF-16 のことを「Unicode」と表現するので、ここを押さえておかないと混乱します。
|