PayPal字符编码会中断 url 字符串


Paypal character encoding breaks url string

我正在PayPal URL 字符串中传递项目名称,但一旦遇到任何具有字符编码的内容,它就会导致 url 字符串在提交到PayPal时中断。

例如,我正在传递以下项名称:

积极倾听 - 这是一个

然后,我的 PayPal url 字符串输出为:

https://www.paypal.com/cgi-bin/webscr?item_name_1=Active listening –it’s

如您所见,它覆盖了 - 和 ' 这会导致 url 字符串中断。如果我手动删除 – 和 ' 它像往常一样工作。

我已将PayPal后端的语言编码设置为 UTF-8,并且正在PayPal字符串上传递 UTF-8。

我做错了什么?

设法通过使用

转换 html 字符来解决此问题

html_entity_decode('string', ENT_COMPAT, 'UTF-8') 

在将项目名称传递给PayPal之前。

您可能需要先将它们转换为 UTF8,然后再转换为 urlencode。尝试这样做

<?php
echo rawurlencode(utf8_encode($yourvar));