• 締切済み

CSVファイルへの書き込み:文字化けしてしまいます

こんにちわ。 HTMLファイルから送られてきた3つのデータ(toi,kotae,yomi)を サーバ上のCSVファイルに書き込むプログラムを作りましたが、文字化けしてしまいます。 尚、同じプログラムをPC内のXAMPP環境で動かしていた際は、文字化けは起こりませんでした。 開発は「メモ帳」で行っています。 よろしくお願いいたします。 ***** ↓クライアント側のHTML <html> <head> <title>send data</title> </head> <body> <form name = "myform" action = "data_to_csv.php"> 問い: <input type = "text" name = "toi" value = ""><br> 答え: <input type = "text" name = "kotae" value = ""><br> 読み: <input type = "text" name = "yomi" value = ""><br> <p> <input name= "mybutton" type="submit" value="click" > </form> </body> </html> ***** ↓サーバー側のプログラム <html> <head> <title>the item added to the csv file</title> </head> <body> The items were sucessfully added to the CSV file.<br> <?php $toi = $_REQUEST['toi']; $kotae = $_REQUEST['kotae']; $yomi = $_REQUEST['yomi']; $lines=array($toi, $kotae, $yomi); $lines=implode(",", $lines); $lines=$lines."\n"; //write to a csv file $fp=fopen("data.csv", "a"); // flock($fp, LOCK_EX); fputs($fp, $lines); fclose($fp); ?> </body> </html>

みんなの回答

  • rally
  • ベストアンサー率28% (32/111)
回答No.1

データベースの文字コードが異なるためですね。 PC側は、メモ帳でソースを書いてるとのことなので、"Shift_JIS"でしょう。 (1).データベースの文字コードを調べて、その文字コードに変換するか、 (2).データベースの文字コードを"Shift_JIS"に変更するか。 (1)の場合、mb_convert_encodeを使います。 (2)は、データベースによってやり方が違うので、調べてみてくださいね。

nice-chap
質問者

補足

こんにちわ。レスありがとうございます。 全然根拠はないのですが、メモ帳の文字コードをunicodeにしたら改善するでしょうか? データベースは使っていないので、データベースの文字コードを帰るという意味がわからないです。すみません。 mb_convert_encodeとはPHPの命令でしょうか?

関連するQ&A