さくらサーバでの文字化け
以前にも質問をさせていただいたのですが解決しなかったので再度投稿させていただきます。
下記環境にて携帯サイトを作成しております。
さくらレンタルサーバ(スタンダードプラン)
MySQL 5.1(2010-12-15時点で最新のもの)
PHPコード UTF-8 ver.5.2.14
テンプレートコード UTF-8
smarty使用
$hoge = mb_convert_encoding( $hoge, 'SJIS-win', 'UTF-8' );
$smarty->assign ( 'contents', $hoge );
上記のような感じでsmartyにアサインする変数をUTF-8からSJIS-winに変換して表示するようにしています。
テンプレート表示周りは問題ないのですが、DBからSELECTしたデータや、新たにINSERTするデータが"??"という感じで文字化けを起こしてしまいます。
なお、INSERTにつきましては、フォームから受け取るデータを
$query = mb_convert_encoding( $_GET[$value], 'UTF-8', 'SJIS-win' );
といった感じでUTF-8に戻しております。
また、PDOを使用しておりますので、SET NAME(セキュリティ上NGなようなのでそもそも使用したくない)、mysql_set_charset()を入れる場所がわからず。。
ちなみにteratermから見たDBのコードが…
Server characterset: ujis
Db characterset: utf8
Client characterset: ujis
Conn. characterset: ujis
となっています。
\C utf8と打ち、Server charcterset以外はutf8にできるのですが、一度terminalを切りまた確認するとujisに戻ってしまいます。。
※phpMyAdminで見ると照合順序:utf8_general_ci、MySQLの文字セット:UTF-8 Unicode(utf8)と表示されております。
諸々調べたのですが、現状上記環境を使用している以上、UTF-8での作成は不可能なのでしょうか?
ご教示いただけますよう何卒宜しくお願い致します。
お礼
ありがとうございます。おかげさまで対応できました。 私の環境では TitleFormat=61 になっていましたが、5 にするとバッチリでした。 teraterm.ini を眺めれば気づいたかもしれませんね。以下、抜粋。 ; Title format ; format ID: 5(000101) <title> - <host/port> VT/TEK ; format ID: 13(001101) <host/port> - <title> VT/TEK ; format ID: 29(011101) <host:tcpport/port> - <title> VT/TEK ; format ID: 45(101101) <host/port:baud> - <title> VT/TEK ; format ID: 61(111101) <host:tcpport/port:baud> - <title> VT/TEK