普通にRedmineを使っているとUTF8の4Byte文字が入力できない事に気付く

「𩸽」「🍠」「🍣」とか、軒並み入力できない件の対応
kanata約8年前に追加

「𩸽」「🍠」「🍣」とか、軒並み入力できない

正確には入力できるんだけど、保存後の表示とかがおかしくなった

原因は、Mariadb(MySQL)の設定文字コードが、「latin1」とかいうよく解らない文字コードになっているから

Mariadb(MySQL)にログインした後、以下のSQLを実行することで、現状の文字コードが確認できる

> show variables like 'char%';

よっしゃ、そしたらutf8にしたるわ。。。と思っても1つ落とし穴がある。

Mariadb(MySQL)には、 utf8 という設定値と utf8mb4 という設定値の両方があり、4Byte文字を格納するためには、 utf8mb4 に設定しなければならない。

対策は、現状のDB文字コード設定を変更して、かつ、現状使用しているテーブルの文字コードも変更するということをしないといけない。

詳細は、以下を参照。

ALMInium - MariaDB(MySQL)の文字コードをutf8mb4にする

以下を参照して実施しました。ありがとうございます大変助かりました。

Dig that groovy! - Redmine構築後のDBの文字コードをutf8mb4に変換して絵文字に対応する
http://zappy.hatenablog.jp/entry/2015/05/19/015044

参考:世界の特殊文字ウィキ - ユニコード6.0以降で使用できる絵文字(食編)


コメント

クリップボードから画像を追加 (サイズの上限: 100 MB)