iPhoneのSafariで文字化けするのはtwitterのバグ(直りました)

  • 追記。このエントリで取り上げている問題は、8月13日に修正されたようです。



  • 化け方の理屈は、Unicodeの符号位置(Unicodeスカラ値)の5桁目が落ちてしまうというもの(下図)。


  • おそらく、twitteriPhoneiPadに最適化されたページのソースを動的に生成するスクリプトにおいて、UTF-8でもサロゲートペアがバラで符号化されているようなつもりで処理してしまっているのだと思う*2

*1:iPadSafariは以前は化けなかったのだが、iPad版新twitterに移行してからは化けるようになった。

*2:という結論に達するまでに、twitter経由で貴重な情報をいただきました。@muota_hereさん、@monokanoさん、@happyscriptさん、ありがとうございます! 経緯はTogetter「iPhoneのSafariの文字化けがtwitterのバグだった件」にまとめておきました。「UTF-8でもサロゲートペアがバラで符号化されているようなつもりで処理」に関しては、Togetterのまとめで言及されている@happyscriptさんの記事「JSONでサロゲートペアを処理する」がわかりやすいと思います。