- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データの文字化けについて)
データの文字化けに関する問題
このQ&Aのポイント
- Web上にCSVファイルを置いてPHPで作ったサイトからデータを入力する際に、文字化けが起きてしまう問題が発生しています。
- 特に、入力後に¥マーク(半角のえんマーク)が入るようになり、データを編集し保存するたびに¥マークの数が増えていく現象が起きています。
- この現象の原因は、SHIFT-JISのCSVデータをUTF-8で表示させるために行ったmb_convert_variablesというPHPの記述にある可能性があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、円マークが出てしまう事を回避したいだけなら、 stripslashes() すればいいです。 いまググってみて見つけた分かりやすそうな説明はこちら。↓ http://nyx.pu1.net/function/strings/stripslashes.html その円マークは 昔 S-JISでコード書いてたときは、よく出くわしましたね。 イマイチ、うまく説明できる自信がないので、はしょりますが その円マークはエスケープ文字です。 mb_convert_variables() は 普段使った事がないので、ググってみて知りえた程度の知識しかありません。 俺は mb_convert_encoding() のほうをよく使います。 なので、原因は 正直 よく分かりません。
お礼
ありがとうございます。 教えていただいた方法で円マークが消えました。 助かりました。 何度か再編集と保存を繰り返したデータには保存した回数分の大量の円マークが発生していて、そのデータに関しては円マークが表示されましたが、そこは手動で消すことで円マークを1つに減らすことができ(どうしても保存時に1つは入っちゃうんですよね)Web表示上は円マークが消えました。 私も最初に検索した時は mb_convert_encoding() をみつけたのですが 書き込んでみたところ上手くいかず なぜかmb_convert_variables() でUTF-8化が上手くいきました。 多分、mb_convert_encoding() の記述や使い方等を間違ったのだとは思いますが、PHPは全く素人で、どこが間違っているのか解りませんでした。 今回のPHPも知人に作ってもらったもので、その知人も原因が解らず困っていたところ、今回のアドバイスをいただき、大変助かりました。 本当にありがとうございました。