文字・文字化け実験室
文字をバイト列にして、別の方式で読み直す。絵文字の「1文字」も分解してみよう。
入力や実験結果は送信・保存しません。ページへの通常のアクセス記録は残ります。
1. 文字を入れて、数え方を比べる
JavaScriptのlengthはUTF-16コード単位。コードポイントはUnicodeの番号、書記素クラスタは見た目の文字に近いまとまりです。NFCは合成できる文字をまとめますが、すべての見た目が同じ文字を同一にするわけではありません。
| 文字 | コードポイント | UTF-8(16進数) |
|---|
表は先頭80コードポイントまで表示します。
2. 同じバイト列を違う方式で読む
下のバイト列はUTF-8で生成します。読み取り方式をShift_JISにすると、同じデータでも文字が変わります。
「�」は読めない部分を置き換える文字です。置換で情報が失われると、文字化けした文字列だけから完全に戻せない場合があります。ここでは元のバイト列を残しているため、UTF-8へ戻して確認できます。