我使用PHP Simple DOM来获取URL。当我将网址内容打印到屏幕上时,我得到:
you’ll
而不是:
you'll
如果我跑
$str = utf8_decode('you’ll');
echo $str;
我明白了:
you?ll
我显然不了解编码的基础知识。你能告诉我我缺少什么吗?
答案 0 :(得分:3)
尝试在执行任何操作之前将编码设置为UTF-8。 用这个开始你的php文件:
<?php
header('Content-Type: text/html; charset=UTF-8');
mb_internal_encoding('UTF-8');
?>
并尝试在不使用utf8_decode的情况下回显/打印它。
注意: 如果你正在使用mysql(postgesql),也可以使用它:
<?php
mysql_query("SET CHARACTER SET UTF8");
mysql_query("SET NAMES UTF8");
?>
编辑:另外,请确保以UTF-8(无BOM)格式保存PHP文件。
答案 1 :(得分:0)
您需要将输出的文档声明为UTF-8(假设它实际上是 UTF-8),以便浏览器知道会发生什么。你可以转换编码,但如果你所做的只是在浏览器中显示它,最好保留原样。
在输出任何内容之前将此行添加到PHP:
header('Content-Type: text/html; charset=utf-8');
...并将此元标记添加为{strong> <head>
的第一个子元素:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />