[前][次][番号順一覧][スレッド一覧]

mysql:7063

From: tamura <tamura <zai91210@xxxxxxxxxx>>
Date: Thu, 27 Feb 2003 02:35:27 +0900
Subject: [mysql 07063] Re: character-set の考え方

田村です。
石野さん、ありがとうございます。

> MySQLはPostgreSQLなどと違い、サーバー側で文字コードの変換はしません。
> 基本的にクライアント側から送られたデータがそのままサーバに格納されます。
> my.ini(my.cnf)で指定した文字コードでデータを送るのは、クライアントの
> 責任です。
 はい、そうでした。

> 
> (
> ソフトエージェンシー http://www.softagency.co.jp/mysql/my_pro.html から
> ダウンロードできるMyODBCとmysql.exeを使えば、ODBCとmysql.exeに関する限り
> SJIS(クライアント側) <-> EUC(サーバ側)変換はできます。
> ただし、この中に含まれるlibmysql.dllはなぜか、折角のこのオプションを有効に
> して作成されてないようです。
> )
> 
> 
> したがって、例えば
> PHP(mbstring.internal_encoding = EUC-JP) -> MySQL (SJIS)
> という構成だと、phpのプログラム上で発行するSQLをSJISに変換する必要があります。
> このオーバーヘッドが気になるなら、MySQLはEUC-JPで構築するしかないと思います。
 後のHTTPヘッダ問題が、未解決ですので、オーバーヘッドには目を瞑って、以
下の関数で処理しました。
function cnv_dispstr2($string) {
  $string = mb_convert_encoding($string, "UTF-8", "auto");
  $string = nl2br($string);
  return $string;
}


> <META http-equiv="Content-Type" content=".....">よりも
> HTTPヘッダの方が優先しますので、php.iniでdefault_charsetの
> 指定をしてなかったりしてるんじゃないでしょうか。
 はい、抜けておりました。Apacheの設定だと、勘違いをしてました。
default_charset = "Shift_JIS"としました。

> $ echo OK | php.exe 
> とでもして確かめてみると良いと思います。
X-Powered-By: PHP/4.1.2
Content-type: text/html
でしたが、
X-Powered-By: PHP/4.1.2
Content-type: text/html; charset=Shift_JIS
のように正常に表示されました。
 早速UTF-8をShift_JISに戻さないと、、、

> (PHPに関しては、最近触ってないので、最新の版では違うかもしれません。)
 いえいえ、本当にありがとうございました。

-- 
tamura <zai91210@xxxxxxxxxx>


[前][次][番号順一覧][スレッド一覧]

      7058 2003-02-26 17:26 [tamura <zai91210@xxx] character-set の考え方                  
      7060 2003-02-26 21:54 ┣[とみたまさひろ <tomm]                                       
      7062 2003-02-27 02:08 ┃┗[tamura <zai91210@xxx]                                     
      7064 2003-02-27 09:19 ┃ ┗[ML account <ml@xxxxx]                                   
      7074 2003-02-28 01:53 ┃  ┗["Tamura/TamRam" <zai]                                 
      7061 2003-02-26 22:19 ┗[Tomoyuki Ishino <ish]                                       
->    7063 2003-02-27 02:35  ┗[tamura <zai91210@xxx]