mysql:7061
From: Tomoyuki Ishino <Tomoyuki Ishino <ishino@xxxxxxxxxx>>
Date: Wed, 26 Feb 2003 22:19:24 +0900
Subject: [mysql 07061] Re: character-set の考え方
石野です。こんばんは。 * [mysql 07058] character-set の考え方 * tamura <zai91210@xxxxxxxxxx> wrote: > mysqlをDOSから起動し、select文で、データを表示した場合、 > character-set=ujisとしても > character-set=sjisとしても、 > (その後、winmysqldadmin.exeも再起動して、my.iniSetupのSave Modification > を有効にしております) > 同じです。同じと言うのは、tebleによって、文字化けをしているものとしてな > いものがありますので、その変化を確認したかったのです。文字化けの原因は、 > 保存時に文字コード変換した時としていない時があったためであろうと、思いま > す。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で構築するしかないと思います。 > いろいろ試した結果、MySQLはujis、HTTPはShift_JISに統一することにし、 > <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> > に変更しましたが、「西ヨーロッパ言語(ISO)」は解決しません。 <META http-equiv="Content-Type" content=".....">よりも HTTPヘッダの方が優先しますので、php.iniでdefault_charsetの 指定をしてなかったりしてるんじゃないでしょうか。 $ echo OK | php.exe とでもして確かめてみると良いと思います。 (PHPに関しては、最近触ってないので、最新の版では違うかもしれません。) -- Tomoyuki Ishino
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]