首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将windows-1255转换为PHP 5中的UTF-8

将windows-1255转换为PHP 5中的UTF-8
EN

Stack Overflow用户
提问于 2014-01-03 15:44:14
回答 1查看 2.3K关注 0票数 9

我有一个网页在我的网站,它的主要内容从一个旧的主机。主机上的内容编码是windows-1255 (希伯来文)。我的网站编码是UTF-8。

一开始,我使用iframe显示从主机接收到的答案。在该解决方案中,我在设置页面编码时没有问题,字符显示也很好,但我对页面的样式设置有一些问题(我的所有网站都响应了)。

然后,我尝试用file_get_contents获取内容并将其添加到正确的位置,但是所有字符看起来如下:�,然后我转换了内容:

代码语言:javascript
复制
iconv("cp1255","UTF-8",file_get_contents("my_url"));

这一结果与希伯来文相反。例如,“尼斯”一词以"ecin“的形式出现。内容还包括HTML标记,而不仅仅是希伯来文本,所以我不能简单地用hebrev反转文本。

我看到在PHP4中存在函数log2vis,这似乎解决了我的问题,但PHP5不支持它(我正在使用PHP5.3.3)。

有比将内容加载到iframe中更好地处理它的方法吗?

更新

我尝试获取我创建的测试文件(使用编码windows-1255),我的原始代码工作正常。我怀疑我得到的内容不是windows-1255,至少不是希伯来字母顺序。主机上的转换可能是原因之一。我必须研究这个问题(我必须等到星期天,因为我没有直接访问服务器的权限)。

EN

回答 1

Stack Overflow用户

发布于 2014-01-03 16:44:17

file_get_contents以ISO8859-1作为字符编码获取内容的问题.您必须使用字符集Windows1255根据函数创建为file_get_contents创建流上下文:

代码语言:javascript
复制
$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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20907388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档