- ベストアンサー
urlencodeでエンコードされる文字コードが変わる
内容が同じSJISとUTF-8のソースを実行すると、それぞれurlencodeでエンコードされる文字コードが変わってしまい困っています。 SJISでもUTF-8と同じようにエンコードをしてパラメタをサーバーに渡したいです。 例: 「株」というキーワードでエンコードすると SJISの場合:%8A%94 UTF-8の場合:%E6%A0%AA urldedodeの結果はどちらとも「株」となる。 php.iniのmbstringを一通りいじってみましたがうまくいきません。 どなかた詳しい方ご教授頂ければと思います。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#249320
回答No.1
キーワードはソースファイル内に直接記述されているのでしょうか? そうだとすると, urlencode の動作としては RFC1738 に規定されている通りそれで正常です。 >SJISでもUTF-8と同じようにエンコードをしてパラメタをサーバーに渡したいです。 ということでしたら, SJIS を一旦 UTF-8 に変換してから urlencode すれば解決できるのでは。 SJIS のソース内で, $key = mb_convert_encoding("株", "UTF-8", "Shift_JIS"); $ekey = urlencode($key); として処理すればよいかと。 # 本来は文字コード SJIS のソースコードは推奨されないのですが・・・
お礼
回答ありがとうございます。 mb_convert_encodingでもうまくいかないので、Jcodeで行ったらうまくいきました。 更にiniが悪さをしていました。 お騒がせしました。