PHPを最近勉強し始めたのですが、どうしても文字化けしてしまう箇所があり質問させていただきました。
海外から購入したスクリプトを日本語化しようとしているのですが、エンコード方式が違う?ため、文字化けするようです。(.phpファイルの文字コードはEUC-JPで統一しています)

function encode_s($s) {
$s = rawurlencode($s);
$s = str_replace('%26','&',$s);
$s = preg_replace('/%([\dABCDEF]{2})/e', "'&#'.hexdec('\\1').';'",$s);
return $s;
}

マルチバイト関数等を勉強中ですが現状ではわからないです。
どなたかご指摘お願いします。
宜しくお願いします。

A 回答 (2件)

こんにちは。


えっと、どんな感じで文字化けするんでしょうか。

ご質問に書かれている関数は、文字を数値に変換させてから、10進数に変換してリターンしてますね。(「%26」というのが「&」になります)

なぜ、このような処理をしているかわからないので何とも言えませんが、

function encode_s($s){
return $s;
}
と、encode_s関数定義内の処理をさせないようにするとどうなりますか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/19 18:52

海外から購入したスクリプトがHTMLを出力するところまで実装されている場合、<meta>タグで1バイト系の文字セットを

定義している可能性がありますが、その点は問題ないでしょうか?
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
<meta>タグに関してなのですが、charsetは全てのファイルでEUC-JP統一しています。
また、HTML出力ではありません。
説明不足で申し訳ないです。
簡単に申しますと、リンク集のスクリプトなのですが、
フォームへ管理者がリンクを追加(日本語タイトル等)

管理・許可ページ(文字化けしてしまう)

リンク集へ反映(日本語表示できる)
という流れです。
管理ページで全てのリンク名が文字化けしてしまうので困っています。
スクリプト内を調べたところ、エンコード方式で文字化けを起こしていると思い、質問させていただきました。

お礼日時:2005/04/06 02:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報