2017-08-02 121 views
0

我試圖通過PHP中的POST請求發送特殊字符,例如ñ。當我這樣做時,它出現爲ñ,什麼是錯的,我該如何解決它?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; 

謝謝!

+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']); 

這是我如何使用在GET和POST方法來發送特殊字符使用Ajax,它必須努力爲PHP太。