2017-08-02 178 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太。