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
とりあえずここまで。