PHP + MySQL での日本語がらみの質問です。


ホスティングで CPI を利用しています。
php の関数で、mysql_client_encoding() を実行すると "ujis" と返ってきます。

動作確認用の CentOS5 が手元にあるのですが、この環境で実行すると"latin1" が返ってきます。
CentOS側で "ujis" と返ってくる(CPI と同じ環境にする)ようにするにはどうしたら良いですか?

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2009/12/01 19:15:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:azumi1975 No.1

回答回数337ベストアンサー獲得回数16

ポイント23pt

http://pochi.orz.ne.jp/oasis/archive_158.htm

真ん中あたりにかかれています。

id:naopontan

OSの文字コードを変更するということでしょうか?

2009/11/25 11:07:16
id:goog20090901 No.2

回答回数637ベストアンサー獲得回数17

ポイント23pt

MYSQLの文字コードの設定を変更

http://www.avant-tokyo.com/linux/mysql_character_set.html

id:naopontan

試してみましたが、変化ありませんでした。

■変更前

 mysql> show variables like 'character_set%';
 +--------------------------+----------------------------+
 | Variable_name            | Value                      |
 +--------------------------+----------------------------+
 | character_set_client     | latin1                     |
 | character_set_connection | latin1                     |
 | character_set_database   | latin1                     |
 | character_set_filesystem | binary                     |
 | character_set_results    | latin1                     |
 | character_set_server     | latin1                     |
 | character_set_system     | utf8                       |
 | character_sets_dir       | /usr/share/mysql/charsets/ |
 +--------------------------+----------------------------+

■変更後

 +--------------------------+----------------------------+
 | Variable_name            | Value                      |
 +--------------------------+----------------------------+
 | character_set_client     | ujis                       |
 | character_set_connection | ujis                       |
 | character_set_database   | ujis                       |
 | character_set_filesystem | binary                     |
 | character_set_results    | ujis                       |
 | character_set_server     | ujis                       |
 | character_set_system     | utf8                       |
 | character_sets_dir       | /usr/share/mysql/charsets/ |
 +--------------------------+----------------------------+

httpd, mysql を再起動するが、"latin1" のままです。(>_<)

2009/11/25 11:10:25
id:emu2929 No.3

回答回数19ベストアンサー獲得回数2

ポイント22pt

my.cnf(もしくはmy.ini)に以下の設定を追加してみたらどうでしょう?


[mysqld]

default-character-set = ujis

skip-character-set-client-handshake

[client]

default-character-set = ujis
id:naopontan

うーん、、、変わらないですねぇ…。

(具体的な指示で分かりやすかったです。感謝)

2009/11/25 20:38:15
id:scrap49 No.4

回答回数18ベストアンサー獲得回数4

ポイント22pt

mysql_set_charset関数で設定できます。

echo mysql_client_encoding();

mysql_set_charset(utf8);

echo mysql_client_encoding();

mysql_set_charset(ujis);

echo mysql_client_encoding();


http://php.net/manual/ja/function.mysql-set-charset.php

http://labs.uechoco.com/blog/2007/09/mysql_set_charset_vs_set_na...

id:naopontan

以下のエラーとなってしまいました。

  • Call to undefined function mysql_set_charset()

MySQLのバージョンアップも検討してみます。

ちなみに当方の環境は 5.0.22 でした。

2009/11/26 12:35:59

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません