[PHP-users 22349]Re: CSVのHTTPアップロードで文字化け

kouno kouno @ ma.akari.ne.jp
2004年 6月 24日 (木) 10:57:35 JST


お世話になっています。河野と申します。

最後に漢字の"口"がつく場合は文字化けします。
その後に文字をつけて"口様"とかにするとうまくいきます。
あとダブルコーテーションで囲んでいると大丈夫です。
ただしエクセルでCSVを編集するとダブルコーテーションが外されてしまいます。
特殊な例かもしれませんが根本的な解決がございましたら
ご教授願います。

>アップロード処理で質問がありますのでよろしくお願いします。
>環境は以下の通りです。
>Soralis8
>Apache1.3.27
>PHP3.0.18
>Oracle8i
>
>
>PHPで以下のようなCSVファイルをHTTPでアップロードしてDBに登録する処理を書いています。
>
>
>--CSVの内容
>登録日時,メールアドレス,名前,住所,生年月日,会社名,性別,電話番号(自宅),電話番号(会社),電話番号(携帯),区分,端末メーカ,予備2(任意),予備3(任意),予備4(任意),予備5(任意),予備6(任意),予備7(任意),予備8(任意),予備9(任意),予備10(任意),予備11(任意),予備12(任意),会員ID
>*****,*****@docomo.ne.jp,田口,,,,,,,,,,,,,,,,,,,,,
>                         ~~~~
>
>--ソースの内容
>$workfile = basename($fil_file);
>$workdir = get_cfg_var('upload_tmp_dir');
>$filename = $workdir."/".$workfile;
>$flag=false;
>$fp=fopen ($filename, "r");			//ファイルのオープン
>
>while( $data = fgetcsv( $fp, 8192, "," ) ) {	//データ取得
>	$num = count($data);
>	if($flag==true){
>		$csv_mail1[]      = $data[1];	//データ読み込み
>		$csv_name[]       = $data[2];
>		$csv_address1[]   = $data[3];
>
>CSVを読みこんだときに田口の口という文字が文字化けしてしまいます。
>$dataに入ったときにはすでに文字化けしていますのでどうしようもありません。




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