Windows 7 : 製品ソフト開発者から出た "その疑問" にズバリお答えします! (第2回)
前の記事に続いて、 第2回 「プログラミングに関する Tips」 ( 10月9日公開 ) より。
サロゲートペアまで含めた Unicode への対応
いきなりですが、 Windows Vista、 または Windows 7 で、 「森鷗外𠮟る」 という名前のユーザーを作成し、 ログオンしてコマンド プロンプトを開いてみてください。 ( ユーザー名を入力する際、 「鷗外」 と 「𠮟る」 の変換ではいくつか候補が出ますが、 Unicode の文字を選んでください。 MS IME では候補一覧が表示される際に 「環境依存文字 (unicode)」 と表示されている文字になります。)
きっと下記のように、 「𠮟る」 の 「𠮟」 が “豆腐” (文字化けによる四角の表示) になっていると思います。
ありゃ、 ほんとだ。 ( echo と type で確認。 )
Win7 のコマンドプロンプトでも、 サロゲートペアには対応してないんだ orz
図 2. に、 「森鷗外𠮟る」 という文字列のコード表を掲載しました。 赤い四角で囲っている部分を見ていただくと分かる通り、 「鷗」 は Unicode にしか定義されておらず、 シフト JIS にはコード ポイントが無い文字です。 「𠮟」 はさらに Unicode 2.0 以降に定義された 「サロゲートペア」 と呼ばれる特殊なコードを持ちます。 「𠮟」は、 実際には Unicode 3.1 で追加されました。
図2 「森鷗外𠮟る」 のコード表
ちなみに、 ぐぐる様で 「𠮟る」 を検索してみると、 約 2,300件がヒット。 ( サロゲートペアじゃないほうで検索すると、 約 665,000 件。 )
サロゲートペア問題について書いてあるページも多いけど、 なにげにサロゲートペアを使っちゃってると思われる人もたくさん。
やはりもう、 サロゲートペアへの対応は必須ですね。 ( ちゃんと通すか、 あるいは、 通さないようにするか。 )
もはや、 「そんな変な文字コードを入れるやつなんて、 居ないよ!!」 などと言っていてはダメでしょう。
※ 引用した部分は、 原文では 「𠮟」 の字が画像になっています。 しかし、 ここではあえて、 本来のサロゲートペアの文字 ( U+20B9F / 𠮟 ) に置き換えてあります。 Windows なら Vista 以降は問題無く表示されるはずです。 Mac も最近のものは大丈夫でしょう。 携帯電話などの対応はどうなんでしょう?
なお、 Windows XP でも、 JIS 2004 対応フォント ( メイリオ または MS ゴシック など ) をインストールすれば表示されます。 ( まだ IE6 の場合は、 要注意。 )
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
この記事へのコメントは終了しました。
コメント