- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字化け)
文字化けの原因と対策
このQ&Aのポイント
- PHPで文字化けが発生する原因として、エンコード方式が異なることが挙げられます。
- 文字化けが発生する場合、文字コードを統一する必要があります。
- 文字化けを防ぐためには、適切なエンコード技術を使用する必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 えっと、どんな感じで文字化けするんでしょうか。 ご質問に書かれている関数は、文字を数値に変換させてから、10進数に変換してリターンしてますね。(「%26」というのが「&」になります) なぜ、このような処理をしているかわからないので何とも言えませんが、 function encode_s($s){ return $s; } と、encode_s関数定義内の処理をさせないようにするとどうなりますか。
その他の回答 (1)
- ntm98
- ベストアンサー率26% (73/273)
回答No.1
海外から購入したスクリプトがHTMLを出力するところまで実装されている場合、<meta>タグで1バイト系の文字セットを定義している可能性がありますが、その点は問題ないでしょうか?
質問者
お礼
返信ありがとうございます。 <meta>タグに関してなのですが、charsetは全てのファイルでEUC-JP統一しています。 また、HTML出力ではありません。 説明不足で申し訳ないです。 簡単に申しますと、リンク集のスクリプトなのですが、 フォームへ管理者がリンクを追加(日本語タイトル等) ↓ 管理・許可ページ(文字化けしてしまう) ↓ リンク集へ反映(日本語表示できる) という流れです。 管理ページで全てのリンク名が文字化けしてしまうので困っています。 スクリプト内を調べたところ、エンコード方式で文字化けを起こしていると思い、質問させていただきました。
お礼
私情により、返信が遅くなり申し訳御座いません。 上記スクリプトを参考にさせていただき、下記コードにより正常に表示することが出来ました。 function encode_s($str) { $str = htmlspecialchars($str); $str = str_replace('&','&',$str); return $str; } ありがとうございました。