我为wordpress创建了一个解析器,但由于wp和db正在使用utf-8,而且有些页面使用不同的编码,因此当我解析它们时,我得到了gibrish。 我使用curl从外部网址获取内容,并使用一些匹配并替换为正则表达式。
有任何建议如何解决这个问题?
我使用了下面Joni的建议,它解决了我的问题。我将来用于此问题的一些示例代码:
preg_match("/charset=(.*?)(\n|'|\"|>)/ism", $content, $charset);
$content = preg_replace('/^HTTP+[^<]+</', '<', $content);
$charset = @trim($charset[1]);
if (preg_match("~(windows-1251|1251)~i", $charset)) return 'Windows-1251';
elseif (preg_match("~iso-8859-7~i", $charset)) return 'ISO-8859-7';
elseif (preg_match("~(koi8|iso-ir-111)~i", $charset)) return 'KOI8-R';
答案 0 :(得分:0)
从内容类型标题中检测正确的编码(如果标题丢失,则检测HTML元标记),并在解析文档时使用它。