UTF-16にゃのサロゲートペア*2
これにゃは、にゃんとかちゅ〜ぶにゃ方からもってきたコードにゃので、にゃんとかにゃ方も、間違ってますですにゃ。(汗)
文字コード……奥が深いですにゃね。
ユニコードにゃは、32bitあれば全部表現できるにゃのですにゃ。
でも、定義されてるにゃは、U+0000〜U+10FFFFにゃまで。
にゃので、20ビットにゃを10ビット2つにゃに分割して、UTF-16にゃにいれちゃえにゃ〜〜ってにゃのが、サロゲートペアにゃのですにゃ。
*1
U+0000〜U+FFFFまでにゃは、普通にゃに 2バイトでにゃってにゃ。
U+10000〜U+10FFFFにゃは、
UTF-32 | UTF-16 |
0000 0000 000x xxxx yyyy yyzz zzzz zzzz | 1101 10xx xxyy yyyyと1101 11zz zzzz zzzz |
みたいにゃ感じにゃに分けるのですにゃ。
xxxxxにゃ部分にゃは、5bitにゃんだけど、1引いてあげるので、4ビットにゃににゃるのですにゃ。*2
UTF-16にゃで、1文字2バイトにゃ〜って感じで配列とか固定で書いてたプログラムにゃは、駄目ににゃってしまうわけですにゃね。