2017-08-02 18 views
0

ñのような特殊文字をPHPのPOSTリクエストを通じて送信しようとしています。私がそれをするとき、それはñとして出ています、何が間違っていますか、それをどうやって修正しますか?事前にPHP POSTリクエストの特殊文字

$url = '<url>'; 
$data = array('key' => 'ñ'); 

$options = array(
    'http' => array(
     'header' => "Content-type: application/x-www-form-urlencoded\r\n", 
     'method' => 'POST', 
     'content' => http_build_query($data) 
    ) 
); 
$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 

echo $result; 

感謝を:

私はここに、PHPでPOSTリクエストを送信し、受信していますが、私はそれを送信するために使用するものです!

+0

出力のエンコーディングは入力のエンコーディングと異なり、あなたはそれを翻訳していません。しかし、エンコーディングを制御するhttpの関連ビットを表示していません。 – symcbean

+0

@symcbean出力に関しては、私はPHPでこれを行います: 'echo $ _POST ['key'];'それは動作しません。 –

+0

誤った文字を受け取る問題は、mb_detect_encoding()およびmb_convert_encoding()関数で処理できます。 –

答えて

1

は、これを使用してみてください:

$data = array('key' => urlencode('ñ')); 

そして$urlファイルに:

$_POST['key']=urldecode($_POST['key']); 

これは私がAjaxでGETとPOSTメソッドで特殊文字を送信するために使用する方法、それはPHPのために働く必要がありますあまりにも。