【发布时间】:2013-10-25 15:19:09
【问题描述】:
我了解到 ISO-8859-1 是单字节字符集。
HTTP 标头和元标记表明它使用 ISO-8859-1 作为字符编码。
但在此页面中使用了一个两字节字符 (0x201A) (http://unicodelookup.com/#%E2%80%9A)。
(复制字符并在http://unicodelookup.com中查找)
<div id="articleTitleMal" style="padding-top:10px;">
<font face= "Manorama" >
¼ÈØOVA¢: ÜÍß‚Äí 1.28 ...
</font>
</div>
如何在单字节编码中使用两个字节字符?
我并不好奇知道这一点。由于不了解上述问题,我的一项任务被卡住了。
更新:他们正在使用字体 www.manoramaonline.com/portal/mmcss/Manorama.ttf,我认为 Manaorama-font 中的某些字符使用了两个字节。
UPDATE2:我尝试使用以下代码将文档从 ISO-8859-1 转换为 UTF-8。
<?php
$t = file_get_contents('http://www.manoramaonline.com/cgi-bin/MMOnline.dll/portal/ep/malayalamContentView.do?tabId=11&programId=1073753760&BV_ID=@@@&contentId=15238737&contentType=EDITORIAL&articleType=Malayalam%20News');
// Change the charset info in meta-tag
$t = str_replace('ISO-8859-1', 'UTF-8', $t);
file_put_contents('t.html', utf8_encode($t));
那个时候上面选中的字符不见了。
【问题讨论】:
-
在这种情况下,我会研究使用此处指定的特定字体
http://www.manoramaonline.com/portal/mmcss/mmFont.css... 此处字体:www.manoramaonline.com/portal/mmcss/Manorama.ttf -
@jtheman 我看了字体。他们对某些字母使用两字节字符。
-
当您访问该页面时,您确定编码仍在
ISO-8859-1上吗?因为大多数情况下它会将它们打印为?标记。 -
@MahanGM 访问页面并检查 HTTP 标头和 Meta 标签。两者都告诉它是 ISO-8859-1
-
您仍然可以对字符 ‚ 进行 HTML 编码
标签: php html character-encoding truetype