iPhoneのSafariの文字化けがtwitterのバグだった件

iPhoneのSafariでtwitterを見ると、Unicodeの追加面(BMP外)の文字が化ける現象について。最初はSafariを疑っていましたが、問題はtwitter側にありました。リスト中に「iPadのSafariでは化けない」という情報がありますが、8月8日現在(iPad版新twitter)ではiPadのSafariでも化けます。
1
UTF-8はBOMなしでって言ったよね? @moji_memo

消えないのもてすと。🐍🐎🐑🐒🐔🐗🐘🐙🐚🐛🐟🐠🐤🐦🐧🐨🐫🐬🐭🐮🐯 🐰🐱🐳🐴🐵🐶🐷🐸🐹🐺🐻

2011-08-01 18:30:48
UTF-8はBOMなしでって言ったよね? @moji_memo

@moji_memo あれ? どうしてiPhoneのSafariで愉快な動物たちが豆腐になってるんだろ。

2011-08-01 22:46:30
UTF-8はBOMなしでって言ったよね? @moji_memo

test_0802_01 U+26BD:⚽, U+FA19:神, U+20B9F:𠮟, U+20BB7:𠮷, U+2F884:巽, U+1F430:🐰, U+0031 U+20E3:1⃣,

2011-08-02 12:54:38
UTF-8はBOMなしでって言ったよね? @moji_memo

iPhoneのSafariは、JavaScriptのUnicodeエスケープシーケンスにおけるサロゲートペアの解釈に失敗している、ということのようだ。Unicodeスカラ値の5桁目を落としちゃってる。

2011-08-02 13:31:11
UTF-8はBOMなしでって言ったよね? @moji_memo

わかってみれば、小形さんの実験中に同じのがあったな。そういうアプリがあるというのは覚えてたけど、Safariだとは思わなかった。

2011-08-02 13:31:23
UTF-8はBOMなしでって言ったよね? @moji_memo

@moji_memo いや、mobile.twitter.comだと、UnicodeエスケープシーケンスじゃなくUTF-8かな。もうちょっと調べよう。

2011-08-02 13:54:40
UTF-8はBOMなしでって言ったよね? @moji_memo

iPhoneのSafariでtwitterを見るとBMP以外の文字が化ける現象。iPhoneのSafariがUnicodeエスケープシーケンスにおけるサロゲートペアを正しく解釈して表示することを確認。ソース(twitter)のほうに問題がある可能性も捨てられない。

2011-08-03 19:35:54
UTF-8はBOMなしでって言ったよね? @moji_memo

test_0805 U+1F430:🐰, U+20B9F:𠮟, U+20BB7:𠮷, U+2F884:巽

2011-08-05 16:23:07
UTF-8はBOMなしでって言ったよね? @moji_memo

iPhoneのSafariでtwitterを表示したとき、1面/2面の文字は、白い画面( http://t.co/n6VVPlS )では化け、雲の画面( http://t.co/bVrQyTE )では化けない。

2011-08-05 17:03:57
UTF-8はBOMなしでって言ったよね? @moji_memo

@moji_memo どなたか白い画面(iPhoneのSafariに最適化された表示?)のソースのありかをご存じでしたら教えてください!

2011-08-05 17:04:50
魚田雅彦 @muota_here

@moji_memo スノレパですがMacのSafariで開発メニューを有効にしユーザーエージェント(UA)をiPhoneにすると http://t.co/xR5iBHC に行けてスクショと同じ化け方.おまけでUAをiPadにすると1F430だけトーフで他は化けず

2011-08-05 17:35:56
魚田雅彦 @muota_here

@moji_memo あ,ソースのありか,の解釈間違ってたらすいません

2011-08-05 17:36:44
UTF-8はBOMなしでって言ったよね? @moji_memo

@muota_here ありがとうございます! これで前に進めそうです! 勉強になります!

2011-08-05 17:50:47
魚田雅彦 @muota_here

@moji_memo あーUA変更は必ずデフォルト(Mac)で表示してからにして下さい.Mac>iPhone>iPadと連続変更するとページ書き直しの無限ループに入りましたw あと,(予想通り)LionのSafariだとUAがiPadで,正しくウサギ出ました

2011-08-05 17:59:37
UTF-8はBOMなしでって言ったよね? @moji_memo

.@muota_here どのプロセスに問題があるのかまでは追い切れませんでしたけど、化けるのは、Safariではなくtwitterの問題っぽいですね。ありがとうございました!

2011-08-05 19:38:46
魚田雅彦 @muota_here

@moji_memo mobile.twitter.comはUAの詐称でもソースに残らないんですね.ちょっと見た感じJASONスクリプト http://t.co/j2rKr5N で文字の処理を行っているようで,素人目には最初の方で4byteずつ切ってるように見えますよ?

2011-08-05 22:00:47
UTF-8はBOMなしでって言ったよね? @moji_memo

@muota_here JavaScriptはわからないんですけど、それでも、もう見るからにこれだなwwってかんじですね!

2011-08-05 22:31:26
魚田雅彦 @muota_here

@moji_memo それで根本的には, @twedasuke などに文字化け改善を要求してはいかがでしょうか^^ スクリプトだけの問題なのだと思うので.

2011-08-05 22:06:13
UTF-8はBOMなしでって言ったよね? @moji_memo

@muota_here そうですね。いろいろありがとうございます!

2011-08-05 22:35:10
UTF-8はBOMなしでって言ったよね? @moji_memo

前後の文脈がまったく理解できないまま、印象だけで無責任に推測すると、UTF-8でもサロゲートペアがバラで符号化されているようなつもりで、そこからUnicodeエスケープシーケンスを生成する処理を書いちゃったというかんじかな。

2011-08-06 01:42:33
UTF-8はBOMなしでって言ったよね? @moji_memo

さんざん悩んでいた問題の本質が一気に明らかに! @muota_here さん @monokano さん @happyscript さん、ありがとうございます!

2011-08-06 02:38:02
ひらくん @happyscript

@moji_memo @muota_here @monokano 知らないうちに話題にからんでいたらしい。なんか多少はお役にたてたようで喜ばしい限りでございます〜

2011-08-06 08:30:02
UTF-8はBOMなしでって言ったよね? @moji_memo

iPhone/iPadのSafariで化ける1面/2面の字。U+1F430:🐰,U+20B9F:𠮟,U+20BB7:𠮷,U+226F3: 𢛳

2011-08-08 13:26:08