我使用 PHP Simple DOM 来获取 URL。当我将 urls 内容打印到屏幕上时,我得到:
you’ll
代替:
you'll
如果我跑
$str = utf8_decode('you’ll');
echo $str;
我得到:
you?ll
我显然不了解编码的基础知识。你能告诉我我错过了什么吗?
在执行任何操作之前尝试将编码设置为 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 文件。
您需要将要输出的文档声明为 UTF-8(假设它实际上是UTF-8),以便浏览器知道会发生什么。您可以转换编码,但如果您所做的只是在浏览器中显示它,最好将内容保持原样。
在输出任何内容之前将此行添加到您的 PHP 中:
header('Content-Type: text/html; charset=utf-8');
...并将此元标记添加为您的第一个子元素<head>
:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />