MySQL 文字化けを防ぐ、文字コードの確認と設定 2007.01.15 MySQL 文字化けを防ぐために、文字コードの確認と設定を行う。 ■現在の文字コードの設定を調べる mysql> show variables like 'character_set%'; または、 mysql> status ■データベースの文字コード設定を調べる データベースごとに文字コードを設定できるので、現在の文字コードを調べる。 (テーブルごとではなく、データベースごと) mysql> show create database データベース名; 文字コードを指定してデータベースを作るには、 mysql> create databaase xxxdb default character set utf8; ■テーブルの文字コード設定を調べる テーブルごとに文字コードを設定できるので、現在の文字コードを調べる。
MySQL に iOS の絵文字など、4バイトUTF-8 の文字を入れると、そこで途切れるという現象がありました。 残念ながら発生したサーバの MySQL バージョンは5.1系でバージョンアップせずに対応したのですが、最近構築したサービスイン前のサーバは5.5系だったので設定してみました。 ■設定内容 1. 文字コードを utf8 → utf8mb4 に変更 2. skip-character-set-client-handshake を設定 ■詳細 1. 文字コードを utf8 → utf8mb4 に変更 MySQLの UTF-8 は4バイトに対応していません。 ですが、絵文字や中国漢字、日本語でも特殊漢字などは4バイトが含まれています。 詳しくはこちら↓ iOS の絵文字(4bytes UTF-8)が入った文字列を MySQL に INSERT/UPDATE すると絵文字以降の文字がぶ
問題点 MySQL5.5以前では4byteのutf8文字列を入れることができない ⇒日本での絵文字などはこれにあたる。 ⇒他の国の言語も一部ここにあたる 現象 実際に入れてみると、4byte文字を境に後ろの文字列が全て消えてしまう。すっぱりと・・・! あい[絵文字]うえお->あい abc[絵文字]def->abc どんなに長い文字列も絵文字の部分から後ろが全部切れてしまうorz CHARCODE設定 CHARCODE設定をutf-8からutf8mb4に変更 skip-character-set-client-handshake設定 skip-character-set-client-handshakeを入れるといいよ!という記事があるものの、利用環境によるかもしれない。 SQLインジェクションの脆弱性がある。 利用している環境にあわせてskip-character-set-client-h
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く