Json 如何使用PHP和CURL对通过API导入shopify的外来字符进行编码
我试图通过API将我们的客户从我们的Magento网站导入Shopify。我正在使用PHP和CURL 我的脚本对于我们的大多数客户来说都很好,但是对于任何包含外来字符的名称都有问题,我在用外来字符回显变量时会得到问号符号,API调用失败,并且没有创建任何客户 奇怪的是,如果我将JSON对象复制到失眠中并运行API调用,即使使用外来字符,它也能正常工作,因此我假设失眠添加了一些我的脚本所没有的编码 我假设我有一个问题的字符集,但不确定我需要改变它,或者如果我设置错误 这是我的代码:Json 如何使用PHP和CURL对通过API导入shopify的外来字符进行编码,json,api,curl,shopify,Json,Api,Curl,Shopify,我试图通过API将我们的客户从我们的Magento网站导入Shopify。我正在使用PHP和CURL 我的脚本对于我们的大多数客户来说都很好,但是对于任何包含外来字符的名称都有问题,我在用外来字符回显变量时会得到问号符号,API调用失败,并且没有创建任何客户 奇怪的是,如果我将JSON对象复制到失眠中并运行API调用,即使使用外来字符,它也能正常工作,因此我假设失眠添加了一些我的脚本所没有的编码 我假设我有一个问题的字符集,但不确定我需要改变它,或者如果我设置错误 这是我的代码:
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $json_string);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec ($curl);
curl_close ($curl);
我也试着把它声明为UTF-8
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json;charset=UTF-8'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $json_string);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec ($curl);
curl_close ($curl);
有什么明显的错误吗
谢谢听起来你好像忘记正确处理UTF-8了。每当你看到一个问号,它就会显示一个编码错误。这意味着你的源数据被破坏了。这意味着源数据是UTF-8,然后您将其读取为ASCII,这无法正确执行UTF-8,因此Shopify将看到垃圾,因为它使用UTF-8编码。如果您使用
mysqli
数据库连接从Magento获取数据,您可能需要将连接的字符集设置为utf8,以便PHP从数据库中正确获取数据:
$mysqli->set\u charset(“utf8”)
我认为您需要检查来自Dominash的PHP CURL代码,该代码成功地将数据发送到Shopify API。《失眠症与邮递员》中有一个选项可以检查不同语言的代码。也许能帮你。帮我这是我的问题,它是从数据库用拉丁语读出来的。谢谢