@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

U+10000を扱う

Unicode スカラー値 U+10000 〜 U+10FFFF の範囲にある文字を UTF-16 で扱う場合、サロゲートペアが使われるので、Word の作成したファイルというか、ディスク上のバイト列も当然サロゲートペアで記録されることになります。
例えば U+10000 は、 UTF-16サロゲートペアを使うと以下の二文字になります。

例)U+10000 = U+D800 U+DC00

Word 2003 であれば、先ほどの URL にあるようにまず(半角英数で) 10000 と入力確定してから、Alt+X を入力することで、Unicode として文字を変換してくれる便利な機能があります。残念ながら、フォントで Arial Unicode MS を指定しても U+10000 は □ と表示されるだけなのですが、ファイルを保存しバイナリエディタで確認すれば以下のバイト列で記録されていることがわかります。

00 D8 00 DC

Mac OS X の文字パレットでも U+10000 は字形が表示されないので、文字コード超研究 で例示されている U+2000B (U+D840 U+DC0B)を使った方がわかりやすい気がしないでもありません。(U+2000B は文字パレットで字形が表示される)
U+2000B は JIS X 0213 で加わった文字らしいので、UTF-16のサロゲートペアに対応している 一太郎2005 JIS X 0213:2004 フォントをインストールしていれば普通に表示できるのかもしれませんが、手元に 一太郎2005 はないので、Word 2003 上で □ 表示のままでテストを進めちゃいます。