Bug(バグ) #2253
Yahoo! ケータイから入力した絵文字が [] という文字列で保存されてしまう
100%
説明
Overview (現象)¶
#2135 の変更以降で発生します。
Yahoo! ケータイから入力した絵文字が [] という文字列で保存されてしまう。
Causes (原因)¶
入力の1バイト目がShiftJISで 0xF7, 0xF9, 0xFB の場合、そのバイトを含む2バイトをSoftbank絵文字と見なし、バイナリ列からOpenPNE形式文字列への変換を行う。
従来、この2バイトをSoftBank旧来の「ISO-2022絵文字 (1B 24 xx yy 0F)」に変換した上でテーブルルックアップしていたが、#2135 にてテーブル側(→lib/vendor/OpenPNE2/KtaiEmoji/Softbank.php)がこのバイナリフォーマットを廃し、実体参照で保持するように変更されたので、ルックアップに失敗するようになったのが原因である。
Way to fix (修正内容)¶
lib/vendor/OpenPNE2/KtaiEmoji.php において、ISO-2022絵文字ではなく実体参照をキーとしてテーブルルックアップを行うように修正する。
関連するチケット
関係しているリビジョン
Yahoo! ケータイで入力した絵文字が正しく保存されない問題(#2135以降)の解決 (fixes #2253)
(refs #2253) Reverted commits for an appropriate fix
renamed the variable $web to $codepoint which explains itself better (fixes #2253)
履歴
#1 Naoya Tozuka が12年以上前に更新
- ステータス を New(新規) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 4d842ba9439f0c498492382f74fbca40abd4b780 で適用されました。
(コミットメッセージが日本語になっていましたので、 b714d9d1 にて一旦revertします)
#2 Naoya Tozuka が12年以上前に更新
更新履歴 bc724f316912208a3292791e462513549302bc6e で適用されました。
#3 Rimpei Ogawa が12年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
レビューOKです。
#4 Rimpei Ogawa が12年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Pending Review(レビュー待ち) に変更
- 進捗率 を 70 から 50 に変更
#5 Rimpei Ogawa が12年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
再度ソースコードを確認したところ、 $web という変数名が不適切ですので変更してください。
#6 Naoya Tozuka が12年以上前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
更新履歴 commit:"671dff6d5279c872f0de2303c0569268686a7763" で適用されました。
#7 Naoya Tozuka が12年以上前に更新
更新履歴 747cadbe51c7e61a2393e1925c0f46e88b648274 で適用されました。
#8 Rimpei Ogawa が12年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
修正確認しました。OKです。
#9 Minoru Takai が12年以上前に更新
- 優先度 を Normal(通常) から High(高め) に変更
- 対象バージョン を OpenPNE 3.7.0 にセット
- 3.6 で発生するか を Yes にセット
このチケットの内容に対して優先度が Normal なのは不自然なので High に引き上げます。
#10 Shingo Yamada が12年以上前に更新
- 360対象 を beta13 にセット
#11 Yuma Sakata が12年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
テストOKです。