パスワードを忘れた? アカウント作成
302790 journal

yasuokaの日記: 国旗の絵文字

日記 by yasuoka

Unicode 6.0で追加されたRegional Indicator Symbol Letterが、もし奇数個ならんでいた場合、どう処理すればいいのか、という質問をいただいた。それはもちろん実装依存なのだけど、常識的には前から順に処理していくべきだと思う。

たとえば、「U+1F1F7 U+1F1FA」(RU)を「ロシアの国旗」として表示する実装では、この直前にU+1F1EBが追加されて「U+1F1EB U+1F1F7 U+1F1FA」(FRU)となったら、「フランスの国旗」と「Uの囲み文字」を表示しなおすべきだ。さらにU+1F1ECが直前に追加されて「U+1F1EC U+1F1EB U+1F1F7 U+1F1FA」(GFRU)となったら、今度は「仏領ギアナの旗」と「ロシアの国旗」が表示されることになる。

では、「U+1F1FC U+1F1F7 U+1F1FA」(WRU)に対しては、何を表示すべきだろう。現在、ISO 3166の2文字国名コードに「WR」はないので、ここは「Wの囲み文字」と「ロシアの国旗」だろうか。もちろんそういう実装もありだが、私(安岡孝一)としては、「Wの囲み文字」「Rの囲み文字」「Uの囲み文字」を推奨する。つまり、どこかで国旗処理にしくじったら、その後に続くRegional Indicator Symbol Letterはできれば処理したくない、というのが私の考えだ。さもないと「U+1F1FC U+1F1F7 U+1F1FA U+1F1F8」(WRUS)とか来た時に、「ロシアの国旗」を表示するか「アメリカ合衆国の国旗」を表示するか、高度に政治的な判断を迫られるからだ。

それでも、「U+1F1FF U+1F1F7 U+1F1FA U+1F1F8」(ZRUS)に関しては、「旧ザイールの国旗」と「アメリカ合衆国の国旗」を表示する実装、という大技があり得るので結構なやましい。うーん、こんなことなら、High/Low Surrogatesをみならって、1文字目と2文字目を別コードにするよう提案すべきだったか…。

この議論は、yasuoka (21275)によって ログインユーザだけとして作成されたが、今となっては 新たにコメントを付けることはできません。
typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...