プロが教えるわが家の防犯対策術!

日本語をurlencodeを使ってGETで送っているのですが受ける側で元の文字に戻らないものがあります。

送信する文字:長野営業所資産管理表2005.xls

urlencodeした文字:%92%B7%96%EC%89c%8B%C6%8F%8A%8E%91%8EY%8A%C7%97%9D%95%5C%82Q%82O%82O%82T.xls

受け取った文字:長野営業所資産管理表\2005.xls

「\」が一文字入ってしまいます。
全角の数字の送り方なんてあるのでしょうか??
よろしくお願いいたします。

A 回答 (2件)

漢字コードがSJISですと、「表」等の漢字は第2バイト目が5cで、「\」(バックスラッシュ)と同じASCIIコードになっているのでこのような症状が出ます。


他には、[申][予][噂][欺][構][十][ソ][暴]
があります
たとえば、長野営業所資産管理一覧.xls にしてみれば現状の環境でもでないと思います。

それとも、
長野営業所資産管理表\2005.xls
あるいは、
EUCコードでエンコード
するか、どちらかですね。
    • good
    • 0
この回答へのお礼

理由がわかりました。
今回の問題の場合ファイル名ですので「\」が文字列に入ることはないのでNo,1の方の関数でやりましたが普通の文字列の場合(「\」も入る可能性のある文字列)EUCでエンコードした後、urlencodeしてSJISに戻せばいいんですね、今後はそのようにプログラミングします。

ありがとうございました。

お礼日時:2005/12/19 13:43

FAQですね。


もしphp.iniを触れる権限があるのであれば
magic_quotes_gpc をoffにしてみてください。
ないのであれば、
$str=stripslashes($str);
($strは受け取った文字)としてみてください。
    • good
    • 0
この回答へのお礼

このとおりにやったら直りました。
ありがとうございます。

お礼日時:2005/12/19 13:40

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