[PHP-dev 1523] Re: 絵文字 <-> Unicode 6.0 変換

Shinya Muramatsu revulon @ gmail.com
2011年 8月 25日 (木) 15:42:46 JST


村松です。

まず初めに、「正しい変換」という私の表現は適切ではありませんでした。
私が予想していたのとは異なる変換結果が返ってきたと書くべきでした。
申し訳ございません。

> UTF-8はUnicode (6.0) の文字空間を単にフォーマット変換しただけですから、
> Unicodeの文字コードとUTF-8は1対1に対応します。
> Unicode 6.0の絵文字のコードがUTF-8に変換されて出力され、出力は
> 正しいUnicode 6.0の絵文字となります。
> (ただし、もちろんDoComo用絵文字UTF-8としては正しくありません)

つまり、UTF-8 というエンコーディングを変換先に指定した場合には、
Unicode 6.0 のコードを機械的に変換した値が返ってくるということですね。
その点については了解しました。
その動作は私も納得がいきますし、そういう動作であるべきだと思います。

ただ、浅川様が述べられている意見の繰り返しのようになってしまいますが、
絵文字を UTF-8-Mobile#xxx でなく、ここでいう UTF-8 に変換しますと、
Unicode 6.0 で定義されている「似た」絵文字に変換されることになりますので、
その過程で、元はどのキャリアのどの絵文字であったかという情報が失われます。
別の言い方をすると、絵文字を UTF-8 に変換するというのは非可逆な変換です。

文字の形が十分似ているのだから問題ない、という考えもあるでしょうし、
むしろそういった Unicode の考え方に慣れていくべきなのかもしれませんが、
後で何か問題が発生することはないだろうか? という不安を若干感じます。

私が、データ保存用にあと1つ UTF-8-Mobile というエンコーディングもあった
方が良いのでは? という提案をしたのは、そういった理由が背景にあります。

--
Shinya Muramatsu <revulon @ gmail.com>


PHP-dev メーリングリストの案内