PayPal快速结账 - 付款页面上有问号标记

12

我刚刚完成了为我的希伯来语网站编写快速结账的php脚本(数据库编码为latin_swedish_ci,浏览器编码为windows-1255,文件编码为ANSI使用notepad ++)。

当我将从数据库中获取的希伯来文本传递给PayPal时,我看到的是问号,而不是正常文本。使用utf8_encode处理文本时,显示出一些无法理解的字符。

未使用utf8_encode:

未使用utf8_encode

使用utf8_encode:

使用utf8_encode

有什么想法吗?


1
哇塞,你应该考虑统一使用什么字符集。最好选择Unicode/UTF-8。 - Amelia
4个回答

3
关键是通过引用的步骤在您的帐户内设置UTF-8编码。
  1. 登录您的PayPal帐户
  2. 导航到“我的账户概述->配置文件->我的销售工具”部分。在“更多销售工具”中,单击“PayPal按钮语言编码”链接。
  3. 确保“您网站的语言”设置正确。
  4. 单击“更多选项”按钮,选择“UTF-8”选项以进行“编码”,并将“是否要使用相同的编码来自PayPal发送给您的数据(例如,IPN,可下载日志,电子邮件)?”选项选择为“是”。
  5. 单击“保存”以保存您的更改。

作为替代,您可以在setExpressCheckout API有效负载中添加LocaleCode=he_IL,以将结帐页面的语言更改为希伯来语。


1
请尝试以下操作:
  • 在您的网页<head>标签内设置 <meta charset="utf-8">
  • 在您的PayPal账户中设置utf-8

登录您的PayPal账户,点击“我的销售偏好”,点击“语言编码”旁边的“更新”,在下一页中选择“西欧语言”并点击“更多选项”,在两个下拉菜单中都选择UTF-8并点击“保存”。


但是,如果我将编码设置为utf8,而我的数据库使用的是latin编码,这样做有帮助吗? - Naxon

0

尝试在数据库中设置utf-8字符:

/* 将字符集更改为utf8 */ 
if (!$mysqli->set_charset("utf8")) {
printf("加载字符集utf8时出错:%s\n", $mysqli->error);
}

同时使用notepad++将文件字符设置为UTF-8enter image description here

思路是将包含字符的每个元素设置为UTF-8


0
你需要自定义paypal快速结帐,特别是你的区域设置。要将PayPal页面显示语言更改为希伯来语,请在SetExpressCheckout调用中将LOCALECODE参数设置为he_IL
来源:自定义快速结帐(滚动到更改语言环境部分)
请记住,您的数据库编码为UTF-8。在将文本发送到PayPal之前,仍然需要进行utf8_decode处理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接