Backport(バックポート) #3179
4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
Start date:
2012-07-26
Due date:
% Done:
100%
Description
現象¶
MySQL の utf8 では4バイトの文字を扱うことができず、4バイト文字を含む文字列を保存する際に4バイト文字以降が切れてしまった不完全な状態で保存されてしまいます。
この影響で、以下の様な問題が発生します。
- 必須項目が空の投稿がおこなえる
- トピック・日記のタイトルに4バイト文字が含まれていると、通知のアクティビティデータが破損し、そのアクティビティを表示する箇所(マイホーム、アクティビティリストなど)が500エラーになる
500 | Internal Server Error | Doctrine_Table_Exception Unserialization of template_param failed.
UTF-8 の4バイト文字は、JIS X 0213 第3・第4水準漢字の一部や、Unicode 6.0 の携帯電話の絵文字の一部が該当します。
Unicode 6.0 で定義された携帯電話の絵文字は iOS 5 の絵文字としても既に使われていますが、このうち U+10000 以降のものは UTF-8 では4バイト文字となります。
参考¶
UTF-8で4バイトになる文字
http://www.softel.co.jp/blogs/tech/archives/596
Unicode6.0の携帯電話の絵文字の一覧 - Wikipedia
http://ja.wikipedia.org/wiki/Unicode6.0%E3%81%AE%E6%90%BA%E5%B8%AF%E9%9B%BB%E8%A9%B1%E3%81%AE%E7%B5%B5%E6%96%87%E5%AD%97%E3%81%AE%E4%B8%80%E8%A6%A7
iOS Emoji
http://punchdrunker.github.com/iOSEmoji/table_html/
現象確認バージョン¶
OpenPNE-3.6.4
h3. 原因
修正内容¶
Related issues
Associated revisions
History
#1
Updated by Yuya Watanabe over 9 years ago
- Assignee set to Yuya Watanabe
#2
Updated by Yuma Sakata over 9 years ago
- Target version changed from OpenPNE 3.8.2 to OpenPNE 3.8.x
3.8.3 以降で対応します。
#3
Updated by Yuma Sakata over 9 years ago
- Target version changed from OpenPNE 3.8.x to OpenPNE 3.8.3
#4
Updated by 開 石切山 over 9 years ago
- Target version changed from OpenPNE 3.8.3 to OpenPNE 3.9.0-old
#5
Updated by Kousuke Ebihara over 9 years ago
- Target version changed from OpenPNE 3.9.0-old to OpenPNE 3.8.4
#6
Updated by Kousuke Ebihara over 9 years ago
- Status changed from New(新規) to Accepted(着手)
- Assignee changed from Yuya Watanabe to Kousuke Ebihara
#7
Updated by Kousuke Ebihara over 9 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
#8
Updated by Rimpei Ogawa over 9 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
#9
Updated by 開 石切山 over 9 years ago
- Status changed from Pending Testing(テスト待ち) to Fixed(完了)
- % Done changed from 70 to 100