Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

MySQL で日本語が文字化け (for Windows)

とりあえず、"INSERT INTO tablename VALUES ('1','日本語');" とかってやったらなんか文字化けした場合。その場しのぎな上上手くいかない場合もあるかも。

  • C:\Program Files\MySQL\MySQL Server 4.1 あたりにある my.ini ファイルの 78 行目くらいにある、文字コードの設定を次のようにする(サーバ側の設定)。
default-character-set=sjis
  • また、クライアントを起動するときに次のようなコマンドラインオプションを付ける(クライアント側の設定)。
--default-character-set=sjis

あとは、シェルが Shift_JIS を解釈できれば O.K. のはず……なのか?

いろんな設定で化けかたがどう違うかまとめてみようかな。INSERT の場合、LOAD DATA の場合、サーバ側指定、クライアント側指定……。

あと、Base64 エンコードして格納すりゃいいじゃん、という話でもあるかもしれない。文字コード変換は自前でやった方が分かりやすい。どうせ飛んでくるデータの文字コードは一定しないはずなんだし。