如何处理这个PHP编码问题?
我正在使用PHP从这个URL获取一些JSON- 我尝试过使用如何处理这个PHP编码问题?,php,character-encoding,Php,Character Encoding,我正在使用PHP从这个URL获取一些JSON- 我尝试过使用cURL和file\u get\u contents(),但是“LastName”元素返回时看起来总是像─Éur─æi─ç 如果我在Chrome中查看该URL,它看起来像urÄIÄ8225; 它应该看起来像urđić 这显然是某种编码问题,但我该如何处理?HTTP响应头不提供编码类型的任何线索 当我在PHP中获得字符串时,我尝试了很多不同的iconv组合,但没有成功 如果我在IE中访问该URL,就可以将.json文件下载到磁盘。当我打开
cURL
和file\u get\u contents()
,但是“LastName”元素返回时看起来总是像─Éur─æi─ç
如果我在Chrome中查看该URL,它看起来像urÄIÄ8225;
它应该看起来像urđić
这显然是某种编码问题,但我该如何处理?HTTP响应头不提供编码类型的任何线索
当我在PHP中获得字符串时,我尝试了很多不同的iconv
组合,但没有成功
如果我在IE中访问该URL,就可以将.json文件下载到磁盘。当我打开它在崇高的文本,它看起来是正确的
有什么建议吗?您可以使用:
<?php
header('Content-Type: text/html; charset=utf-8');
echo iconv("utf-8", "latin1", "BosanÄić");//Bosanči
echo iconv("utf-8", "latin1", "JiráÄek"); //Jiráček
?>
您的输入字符集是UTF-8,您需要将其转换回拉丁文1不确定这是否重要,但您的PHP文件是以UTF8编码还是仅以ANSI编码保存的?用于显示日期的任何东西都必须支持UTF-8,utf8_decode将utf-8转换为latin1,但latin1不支持这些字符,因此将它们替换为问号。很遗憾,我无法在标题中指定“内容类型”。我正在用我的PHP脚本调用一个带有CURL的第三方web服务,响应头中没有设置“内容类型”。我确实尝试在CURL请求中设置
CURLOPT_编码
,但我遇到了同样的问题。