如何处理这个PHP编码问题?

如何处理这个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文件下载到磁盘。当我打开

我正在使用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文件下载到磁盘。当我打开它在崇高的文本,它看起来是正确的

有什么建议吗?

您可以使用:

<?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_编码
,但我遇到了同样的问题。