[PHP-users 27609] Re: UTFのMySQLのデータをEUCに変換

Shunro Dozono dozono @ gmail.com
2005年 11月 25日 (金) 15:22:34 JST


sdozono(CBA-JAPAN)です。

> データがUTF-8のMySQL4.1(Linux)からPHP4.4(Linux)で検索しデータの取得する
> 際に、検索したデータを簡単にEUC-JPに変換する方法はありますでしょうか?
> MySQL側で変換orPHP側での変換どちらでも構いません。

** PHP側での変換 ** ということで。

海外で書かれたスクリプトなどを使うときも、これって問題になりますよね。
データベースとクライアントの文字コードを違うものにしたいって要望が発生するのは日本だけなんでしょうか?

私は、「コード変換機能付き データベースよみかき関数ファイル」をひとつ作って、それを放り込むスタイルで海外のスクリプトを使っています。

たとえば、こんな感じです。

function mb_conv2SCRIPT($text)
{
  return mb_convert_encoding($text, SCRIPT_CODE, DB_CODE);
}

function mb_mysql_fetch_array($result, $result_type)
{
  $row = mysql_fetch_array($result, $result_type);
  if(!is_array($row)){
   return $row;
  }
  while(list ($key, $val) = each($row)) {
   $row[$key] = mb_conv2SCRIPT($val);
  }
  return $row;
}

------------------------------------------
Webアプリ開発記
http://douzo.seesaa.net/
------------------------------------------

05/11/25 に jj @ sann.ne.jp<jj @ sann.ne.jp> さんは書きました:
> JJです。
>
> データがUTF-8のMySQL4.1(Linux)からPHP4.4(Linux)で検索しデータの取得する
> 際に、検索したデータを簡単にEUC-JPに変換する方法はありますでしょうか?
> MySQL側で変換orPHP側での変換どちらでも構いません。
>
> 個人的には思い浮かんだのは
>
> $ret = PEAR:DB->getAll(query);
> mb_convert_encoding($ret, "EUC-JP", "UTF-8");
>
> このように毎回検索結果に対して変換をかけるやり方です。
> ただこれをすると全てのコードで変換処理をかかなくてはいけないので、
> 変換処理を自動的にやってくれるような事がしたいのですが、
> 何かいい方法ありませんでしょうか?
>
>
>
> (MySQL or PEARの設定でなんとかなる??)
>
>
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>


PHP-users メーリングリストの案内