Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
Json 如何使用PHP和CURL对通过API导入shopify的外来字符进行编码_Json_Api_Curl_Shopify - Fatal编程技术网

Json 如何使用PHP和CURL对通过API导入shopify的外来字符进行编码

Json 如何使用PHP和CURL对通过API导入shopify的外来字符进行编码,json,api,curl,shopify,Json,Api,Curl,Shopify,我试图通过API将我们的客户从我们的Magento网站导入Shopify。我正在使用PHP和CURL 我的脚本对于我们的大多数客户来说都很好,但是对于任何包含外来字符的名称都有问题,我在用外来字符回显变量时会得到问号符号,API调用失败,并且没有创建任何客户 奇怪的是,如果我将JSON对象复制到失眠中并运行API调用,即使使用外来字符,它也能正常工作,因此我假设失眠添加了一些我的脚本所没有的编码 我假设我有一个问题的字符集,但不确定我需要改变它,或者如果我设置错误 这是我的代码:

我试图通过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。《失眠症与邮递员》中有一个选项可以检查不同语言的代码。也许能帮你。帮我这是我的问题,它是从数据库用拉丁语读出来的。谢谢