アプリ版:「スタンプのみでお礼する」機能のリリースについて

DB情報をHTMLで表示する場合に、mb_convert_encoding()で指定する文字コード

MySQL5.1
PHP5
HTML - shift_jis

MySQL の文字セット UTF-8 Unicode (utf8)
MySQL の接続照合順序: ujis_japanese_ci
フィールドの照合順序 ujis_japanese_ci

PHPプログラムでDB情報取得後にSJISに変換
mb_convert_encoding($String, "SJIS", "●●●");

●●●の文字コードを何を指定すればいいのかがわかりません。
EUCを書くとうまくいってるような気もしますが、なぜEUCでうまくいく
のかもわかりません。

ご教授下さい。

A 回答 (2件)

mysql> STATUS;


を実行して、下記項目のチェックしてみてください
Server characterset
Db characterset
Client characterset
Conn. characterset
    • good
    • 0

mysql5.1には、クライアントハンドシェイクといったような機能があります。


つまり
DBの文字コードを、接続してきたクライアントの文字コードに自動変換するという機能になります。
●●●をEUCにするとうまく行っているというのであれば、クライアント(つまりPHP5)がインストール時点でEUCを使用しているということになります。
PHP5のデフォルト文字コードというのは質問者さんが作成しているPHPのファイルの文字コードとは別のものになる為、発生していると思われます。

回避方法としてはmysqlのオプションに、
--skip-character-set-client-handshake
というものがありますので、これを設定ファイルに記述するというところになります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!