[PHP-users 10980] Re: 文字コード変換がおかしい?

morikawa php-users@php.gr.jp
Mon, 21 Oct 2002 10:16:34 +0900


もりかわです。亀レスつけるのもなんですが。。。

> 良くありがちな質問に似ているかもしれないのですが…、同じ変数に対して繰り
> 返し『mb_convert_encoding』などを実行すると正しく変換されなくなっていく
> ものなのでしょうか?
> 
同じ変数でも、書き立てホヤホヤの下記はちゃんとconvertされてますけど。
    // DB to CSV
    while ( $row = $rsh->fetchRow() ) {
      $data = preg_replace('/[\r\n]+/',' ',join(',', $row));
      print mb_convert_encoding($data, 'SJIS', 'EUC-JP')."\r\n";
    } //


> 	※最初、$a = "EUC"
> 	$a = mb_convert_encoding($a,"SJIS","EUC-JP");
> 	$a = mb_convert_encoding($a,"SJIS","EUC-JP");
> 	$a = mb_convert_encoding($a,"SJIS","EUC-JP");
> 	$a = mb_convert_encoding($a,"SJIS","EUC-JP");

同じ変数が同じ値ってことだとすると、
最初が $a = "判別可能なくらい長い日本語文字列" だったとして、
http://jp.php.net/manual/ja/function.mb-convert-encoding.php
にあるように、SJISに変換された文字列をEUC-JPで解釈せよと
指定しているのだからおかしくても不思議じゃない気がしますが、
いかがでしょうか?

自分はあんま困ったことがないので、
> なんだか期待通りに変換してくれないことが多くて困ってます。
ってのは実感がありませんが。。。
 
もりかわ
[PHP-FAQ JP (非公式)] http://phpfaq.encore-ann.com
一度メゲてます。がんばれワカ造!