Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SagePay服务器URL编码重音字符问题_Php_Curl_Url Encoding_Opayo - Fatal编程技术网

Php SagePay服务器URL编码重音字符问题

Php SagePay服务器URL编码重音字符问题,php,curl,url-encoding,opayo,Php,Curl,Url Encoding,Opayo,我正努力弄清楚通过cURL发送给SagePay的参数编码。根据他们的文档,所有参数都需要URL编码。在将参数作为字符串传递给SagePay之前,我对参数使用PHP的urlencode方法。下面是字符串部分的示例:- $data = "BillingFirstnames=Jos%C3%A9+Luis&BillingSurname=Test" ... 但是,它未能在SagePay服务器网站上正确呈现重音“é”:- Firstname: José SagePay的文档声明,您可以将重音字

我正努力弄清楚通过cURL发送给SagePay的参数编码。根据他们的文档,所有参数都需要URL编码。在将参数作为字符串传递给SagePay之前,我对参数使用PHP的urlencode方法。下面是字符串部分的示例:-

$data = "BillingFirstnames=Jos%C3%A9+Luis&BillingSurname=Test" ...
但是,它未能在SagePay服务器网站上正确呈现重音“é”:-

Firstname: José
SagePay的文档声明,您可以将重音字符作为账单名(等)的一部分传递,并且参数应为URL编码

我们的cURL请求如下所示(如果有帮助):-


关于如何解决此问题的任何建议,以便在SagePay上第一个名字显示为“José”

您可以通过
http
标题设置
utf-8
内容类型。例如:

curl_setopt($cs, CURLOPT_HTTPHEADER, 
    array('Content-Type: application/x-www-form-urlencoded;charset="utf-8"')
);
您在问题中已经提到了php
urlencode
,但我没有在您的代码中看到它。所以再加一次

$post = "age=15&name=".urlencode("José");

您可以通过
http
标题设置
utf-8
内容类型。例如:

curl_setopt($cs, CURLOPT_HTTPHEADER, 
    array('Content-Type: application/x-www-form-urlencoded;charset="utf-8"')
);
您在问题中已经提到了php
urlencode
,但我没有在您的代码中看到它。所以再加一次

$post = "age=15&name=".urlencode("José");

您可以通过
http
标题设置
utf-8
内容类型。例如:

curl_setopt($cs, CURLOPT_HTTPHEADER, 
    array('Content-Type: application/x-www-form-urlencoded;charset="utf-8"')
);
您在问题中已经提到了php
urlencode
,但我没有在您的代码中看到它。所以再加一次

$post = "age=15&name=".urlencode("José");

您可以通过
http
标题设置
utf-8
内容类型。例如:

curl_setopt($cs, CURLOPT_HTTPHEADER, 
    array('Content-Type: application/x-www-form-urlencoded;charset="utf-8"')
);
您在问题中已经提到了php
urlencode
,但我没有在您的代码中看到它。所以再加一次

$post = "age=15&name=".urlencode("José");

是的,在我的示例中应该包括urlencoding的步骤,我有一个传递数组的函数来清理数据、urlencode和构建字符串。所以这一切都很好。不过,您的CURLOPT_HTTPHEADER建议似乎起到了作用。所以,谢谢。是的,我应该在我的示例中包含urlencoding的步骤,我有一个传递数组的函数来清理数据、urlencode和构建字符串。所以这一切都很好。不过,您的CURLOPT_HTTPHEADER建议似乎起到了作用。所以,谢谢。是的,我应该在我的示例中包含urlencoding的步骤,我有一个传递数组的函数来清理数据、urlencode和构建字符串。所以这一切都很好。不过,您的CURLOPT_HTTPHEADER建议似乎起到了作用。所以,谢谢。是的,我应该在我的示例中包含urlencoding的步骤,我有一个传递数组的函数来清理数据、urlencode和构建字符串。所以这一切都很好。不过,您的CURLOPT_HTTPHEADER建议似乎起到了作用。所以谢谢。Sage Pay只在内部处理扩展的ASCII/ANSI。您的重音字符将从UTF-8编码转换为其单字节ANSI等效字符。当然,这意味着支持的字符范围非常有限——大部分是重音西文字母。Sage Pay只在内部处理扩展的ASCII/ANSI。您的重音字符将从UTF-8编码转换为其单字节ANSI等效字符。当然,这意味着支持的字符范围非常有限——大部分是重音西文字母。Sage Pay只在内部处理扩展的ASCII/ANSI。您的重音字符将从UTF-8编码转换为其单字节ANSI等效字符。当然,这意味着支持的字符范围非常有限——大部分是重音西文字母。Sage Pay只在内部处理扩展的ASCII/ANSI。您的重音字符将从UTF-8编码转换为其单字节ANSI等效字符。当然,这意味着支持的字符范围非常有限——大部分是重音西方字母。