在PHP 5中将windows-1255转换为UTF-8
发布时间:2020-12-13 17:53:58 所属栏目:PHP教程 来源:网络整理
导读:我的网站上有一个页面,它从旧的大型机中获取它的主要内容.来自大型机的内容编码是 windows-1255(希伯来语).我的网站编码是UTF-8. 起初我使用iframe来显示从大型机收到的答案.在该解决方案中,我没有设置页面编码的问题,并且字符显示很好,但是我在响应性地设置
我的网站上有一个页面,它从旧的大型机中获取它的主要内容.来自大型机的内容编码是
windows-1255(希伯来语).我的网站编码是UTF-8.
起初我使用iframe来显示从大型机收到的答案.在该解决方案中,我没有设置页面编码的问题,并且字符显示很好,但是我在响应性地设置页面时遇到了一些问题(我的所有网站都是响应式的). 然后我尝试使用file_get_contents获取内容并将其添加到正确的位置,但所有字符看起来像这样:,然后我转换了内容: iconv("cp1255","UTF-8",file_get_contents("my_url")); 结果反过来希伯来语.例如,“nice”一词显示为“ecin”. 我在PHP 4中看到函数fribidi_log2vis存在,这似乎解决了我的问题,但它在PHP 5中不受支持(我正在使用PHP 5.3.3). 有没有办法处理它比将内容加载到iframe更好? UPDATE 我试图获取我创建的测试文件(使用编码windows-1255),我的原始代码工作正常.我怀疑我得到的内容不是windows-1255,至少不是希伯来语字母顺序.大型机上的转换可能是原因.我将不得不调查(我必须等到星期天因为我没有直接访问服务器).
file_get_contents将内容与ISO 8859-1作为字符编码的问题.您必须通过函数
stream_context_create使用charset Windows-1255为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",$content); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |