mysql文字コード変更 | 開発部1年目

mysql文字コード変更

Perlにてmysqlからデータを変数に代入するとどうも文字化けする。

エンジニアにとって文字化けとは、切っても切れない関係なんでしょうか。


とりあえず、情報収集。


まずサーバの文字コードを調べる。


/etc/sysconfig/i18n


に記載されているので該当ファイルをviewしてみると。


LANG="ja_JP.UTF-8"
SUPPORTED="ja_JP.UTF-8:ja_JP:ja"
SYSFONT="latarcyrheb-sun16"


LANGの行にあるUTF-8だったのでサーバの文字コードはUTF-8のようだ。


参考URI

http://ppwww.phys.sci.kobe-u.ac.jp/~akusumoto/linux/detail.php?d=config/charset/system_charset


次にmysql

mysqlコマンドstatusの結果。


mysql Ver 14.7 Distrib 4.1.20, for redhat-linux-gnu (i686) using readline 4.3

Connection id: 16
Current database: groupware
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 4.1.20
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 12 min 36 sec

Threads: 1 Questions: 278 Slow queries: 0 Opens: 25 Flush tables: 1 Open tables: 19 Queries per second avg: 0.368


latin1?見たことのない文字コード

調べてみると普通にメジャーな文字コードのようで。

西ヨーロッパ言語 (ISO) ISO-8859-1 の文字コード別名のようです。


参考URI

http://www.hitachi-to.co.jp/prod/prod_2/inter/emk/help/TextEncoder/Charset.htm


とりあえずここまで。