• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字化け)

文字化けの原因と対策

このQ&Aのポイント
  • PHPで文字化けが発生する原因として、エンコード方式が異なることが挙げられます。
  • 文字化けが発生する場合、文字コードを統一する必要があります。
  • 文字化けを防ぐためには、適切なエンコード技術を使用する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんにちは。 えっと、どんな感じで文字化けするんでしょうか。 ご質問に書かれている関数は、文字を数値に変換させてから、10進数に変換してリターンしてますね。(「%26」というのが「&」になります) なぜ、このような処理をしているかわからないので何とも言えませんが、 function encode_s($s){ return $s; } と、encode_s関数定義内の処理をさせないようにするとどうなりますか。

xyon7
質問者

お礼

私情により、返信が遅くなり申し訳御座いません。 上記スクリプトを参考にさせていただき、下記コードにより正常に表示することが出来ました。 function encode_s($str) { $str = htmlspecialchars($str); $str = str_replace('&','&',$str); return $str; } ありがとうございました。

その他の回答 (1)

  • ntm98
  • ベストアンサー率26% (73/273)
回答No.1

海外から購入したスクリプトがHTMLを出力するところまで実装されている場合、<meta>タグで1バイト系の文字セットを定義している可能性がありますが、その点は問題ないでしょうか?

xyon7
質問者

お礼

返信ありがとうございます。 <meta>タグに関してなのですが、charsetは全てのファイルでEUC-JP統一しています。 また、HTML出力ではありません。 説明不足で申し訳ないです。 簡単に申しますと、リンク集のスクリプトなのですが、 フォームへ管理者がリンクを追加(日本語タイトル等) ↓ 管理・許可ページ(文字化けしてしまう) ↓ リンク集へ反映(日本語表示できる) という流れです。 管理ページで全てのリンク名が文字化けしてしまうので困っています。 スクリプト内を調べたところ、エンコード方式で文字化けを起こしていると思い、質問させていただきました。