1

我使用 PHP Simple DOM 来获取 URL。当我将 urls 内容打印到屏幕上时,我得到:

you’ll

代替:

you'll

如果我跑

$str = utf8_decode('you’ll');
echo $str;

我得到:

you?ll

我显然不了解编码的基础知识。你能告诉我我错过了什么吗?

4

2 回答 2

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 文件。

于 2012-08-10T08:42:28.863 回答
0

您需要将要输出的文档声明为 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" />
于 2012-08-10T08:39:51.827 回答