我有一个网页在我的网站,它的主要内容从一个旧的主机。主机上的内容编码是windows-1255 (希伯来文)。我的网站编码是UTF-8。
一开始,我使用iframe显示从主机接收到的答案。在该解决方案中,我在设置页面编码时没有问题,字符显示也很好,但我对页面的样式设置有一些问题(我的所有网站都响应了)。
然后,我尝试用file_get_contents获取内容并将其添加到正确的位置,但是所有字符看起来如下:�,然后我转换了内容:
iconv("cp1255","UTF-8",file_get_contents("my_url"));这一结果与希伯来文相反。例如,“尼斯”一词以"ecin“的形式出现。内容还包括HTML标记,而不仅仅是希伯来文本,所以我不能简单地用hebrev反转文本。
我看到在PHP4中存在函数log2vis,这似乎解决了我的问题,但PHP5不支持它(我正在使用PHP5.3.3)。
有比将内容加载到iframe中更好地处理它的方法吗?
更新
我尝试获取我创建的测试文件(使用编码windows-1255),我的原始代码工作正常。我怀疑我得到的内容不是windows-1255,至少不是希伯来字母顺序。主机上的转换可能是原因之一。我必须研究这个问题(我必须等到星期天,因为我没有直接访问服务器的权限)。
发布于 2014-01-03 16:44:17
file_get_contents以ISO8859-1作为字符编码获取内容的问题.您必须使用字符集Windows1255根据函数创建为file_get_contents创建流上下文:
$opts = array('http' => array('header' => 'Accept-Charset: windows-1255,utf-8;q=0.7,*;q=0.7'));
$context = stream_context_create($opts);
$content = file_get_contents('my_url', false, $context);
iconv("cp1255", "UTF-8", $content);https://stackoverflow.com/questions/20907388
复制相似问题