ドロップシッピング始めました!
お小遣いほしさに始めたので、これから頑張っていきます!
PHPでXMLサーバーにリクエストを送り結果にてHTMLを生成するプログラムが最近多くなってきてるようですが、リクエストパラメータに日本語を扱う場合問題が多いです。
<?php
$parm = "テスト";
$url = "http://xmlserver/testxml.php?parm=" . $parm ;
$data = @simplexml_load_file($url);
?>
この場合、$parmの文字によっては正しく送る事が出来ません。
日本語をパラメータで送る場合は、 urlencode() の関数を使う事により解決します。
<?php
$parm = "テスト";
$url = "http://xmlserver/testxml.php?parm=" . urlencode($parm) ;
$data = @simplexml_load_file($url);
?>
これで解決!と思いきや問題が・・・・・
エンコードしても受け側が認識できていない!
原因は、PHPソースの文字形式に問題がありました。
urlencode関数は、PHPソースの文字コード形式によりエンコードされます。
PHPソースがSJISの場合SJISでエンコードされるってことです。
サーバーがUTF-8Nで受ける場合は、送り側ソースもUTF-8N形式でエンコードしないと駄目でした。
もし、ソース中に日本語がない場合、文字コードが判断できませんので、コメント行で日本語を入れておきましょう!これで、文字コードが判断されるようです。
文字コードが色々あるので色々起こりますね。
comments(0), trackbacks(0), - -