
MySQLにてutf8mb4に全面移行するかどうか迷っています。
だいたい調べた限りでは、絵文字や中国語などを扱う際にutf8mb4だと何かと都合がいいようです。
ですが私の場合は今まで3バイトのutf8で困った場面がありませんでした。
・今後新規に作るデータベースは全てutf8mb4にすべきか
・過去のものも全てutf8mb4に変換しておくべきか
以上二点で悩んでいます。
デメリット(たとえばインデックス長の制限が短くなる等)も一応あるようなので、従来のutf8のままで行くかどうか決めかねています。
皆さんのお考え・ご意見をお聞かせください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
自分はユーザが文章を投稿するサイトでutf8をutf8mb4に移行した経験があります。
理由は絵文字を投稿された場合に、DBに保存する際に、絵文字以降の文章が削除されてしまうからです。
絵文字や中国語などを扱うことが想定されていないシステムならわざわざutf8mb4にする必要はないと思います。
ただし、混乱を避けるために、すべてのシステムでutf8mb4に統一しておくのはいいかもしれませんね。
投稿2016/12/30 09:51
編集2016/12/30 11:10総合スコア6586
0
(1)utf8mb4 のデータを入力しようとしたらエラーを表示し、入力できないように
しているかがキチンとできていないとutf8のままにはできないと思います。
(2)しかしながら、WEB(UTF仕様)で表示できていても、WINDOWSのシフトJISに変換
しようとすると変換不能文字になってしまうのは残念ながら避けることはできません。
ただ、0.01%未満なので目をつぶることはできるでしょう。
utf8(3バイト)の範囲ですら変換不能文字や不可逆変換文字は存在します、波ダッシュ~やハイフン等)
現時点では長短併せ持つので、採用するかしないかの決定的な客観的要因はないと思います。
世の中の趨勢により(グローバル化で)各国独自文字を使う傾向があるのでいずれはUTF8mb4に移行して
いくことは間違いないと個人的には考えています。
投稿2017/01/05 19:00
総合スコア65
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。


0
icchiiさんがおっしゃっていますが、自分も文字コードを調べたときに「携帯電話キャリアー固有の絵文字がutf8mb4でないと化ける」という記事を見かけました。
ご質問をみて日本語を想定したとき4バイトになる文字には何があるんだろうと改めて検索してみたら「MySQLの文字コード事情」なるページが見つかりました。これには以下が挙げられてるようです。
- JIS X 0213の中では第三水準以降の一部
- キャリアー固有絵文字に代表される絵文字(多数)
第三水準以降の一部の文字については使用する頻度が少ないでしょうがあえて切り捨てるのではなく含めておく方が無難であろうというのは誰しも考えると思います。第二水準までしか用いないという明確な基準があれば別だと思いますが。また「絵文字をどうしたいか?」の方は場合によっては漢字の問題よりも強い動機になりそうな気がします。
投稿2016/12/30 11:26
編集2016/12/30 13:44総合スコア18404
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2016/12/30 11:32

0
ベストアンサー
システムリプレース時には、データベース等ミドルウェアの設計の見直しもあるわけですが、質問者さんのおっしゃるようにインデクス長の変更などは重大なので、できればutf8mb4への移行は避けたいところです。
しかし個人的な経験では、日本語の漢字 (人名など) に関しては、クライアントさん側からBMP外の漢字への対応を求められたことがありません (「はしご高」のような有名(?)なものはだいたいBMP内です)。これは、異体字に対して運用で対応してきた時期が長いためと思われます (「わたなべのなべ」などはどっちみち完璧な対応は難しいですし)。中国語の漢字も同様のはずです。
ですので、新規設計でかつ、人名の漢字を正確に扱いたいとか、絵文字やヒエログリフを文字情報として格納したいというのであれば、迷わずutf8mb4を採用しますが、そうでなければutf8にしてほしいです。
投稿2016/12/30 13:07
総合スコア4443
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2016/12/30 14:11

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/12/30 11:32
2016/12/30 23:05 編集