php と mysql( Trixbox 2.8 と SIP-2100 )

SIP-2100 は文字表示は SJIS であった。

$Ans = mb_convert_encoding($Ans, "SJIS","SJIS")

みたいなコードを付け加えて MSSQL の半角カタカナを拾って表示して SIP-2100 で表示可能となった。(必要ないと思うが、UTF-8 がらみでコードが残っている)
今度は MySQL で電話帳を作って、そちらで検索して失敗したら MSSQL を検索、みたいなスクリプトを作ったら、 MySQL が文字化けで全然 mb_convert されない。すべて「?」が表示されてしまう。
悩んだ結果、

# vi /etc/my.cnf

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

[client]
default-character-set=utf8

を付け加えて、 :wq で保存、
# service mysqld restart
# service httpd restart
で、解決した。

php 内部では
$Kana = mb_convert_encoding($row["Kana"], "SJIS","UTF-8");
として変換してあるが、?code= みたいな感じで好きなコードで吐けるようにしておくと便利かも。
きれいなソースに書き直したら公開予定。

コメントを残す

メールアドレスが公開されることはありません。