Tipsカテゴリ
プログラムTips ※Tips一覧はこちら
 
■ PHP+MySQLでデータベース・スクリプト・出力を異なる文字コードにする (2007/03/10)

Fedora Core 5での設定例です。
データベースの文字コードをUTF-8、スクリプトの文字コードをEUC、実際のブラウザへの出力をSJISにする場合の設定例です。文字コードを統一すればよいのですが、そうできないこともありますよね・・・

1.php.iniの修正
---- ここから
output_handler = mb_output_handler
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
---- ここまで

2.httpdの再起動
/etc/rc.d/init.d/httpd restart

3./etc/my.cnfの修正
---- ここから
[mysqld]
....
default-character-set=utf8
[mysql.server]
....
default-character-set=utf8
[mysqld_safe]
....
default-character-set=utf8
[client]
default-character-set=utf8
---- ここまで

4.mysqldの再起動
/etc/rc.d/init.d/mysqld restart

5.データベースやテーブルの作成
mysql -u ユーザーID -p
> create database ....
> create table ...

6.PHPでプログラミング
$conn = mysql_connect("DBサーバー", "ユーザーID", "パスワード");
mysql_query("SET NAMES utf8",$conn);
mysql_select_db("データベース名", $conn);
$sql = "select フィールド名  from テーブル名 ";
$rst = mysql_query($sql, $conn);
while($row = mysql_fetch_array($rst)) {
  echo mb_convert_encoding($row["フィールド名 "], "EUC-JP", "UTF-8");
}
mysql_close($conn);

カテゴリ:サーバー設定

Google
 
在宅、SOHO、求人
 
Copyright(c) 2009 ISCS All rights reserved.