我尝试将文本转换为或从utf8转换,但似乎没有帮助。
我得到的是:
"It’s Getting the Best of Me"
应该是这样的:
"It’s Getting the Best of Me"
我正在从这个网址获取数据。
我尝试将文本转换为或从utf8转换,但似乎没有帮助。
我得到的是:
"It’s Getting the Best of Me"
应该是这样的:
"It’s Getting the Best of Me"
我正在从这个网址获取数据。
将文本转换为 HTML 实体:
<?php
echo mb_convert_encoding(
file_get_contents('http://www.tvrage.com/quickinfo.php?show=Surviver&ep=20x02&exact=0'),
"HTML-ENTITIES",
"UTF-8"
);
?>
请查看mb_convert_encoding的文档以获取更多编码选项。
mb_convert_encoding()
函数。例如,$text = fgets($fp); $html = mb_convert_encoding($text, "HTML-ENTITIES", "UTF-8");
。 - Matthew确保你的 HTML 头部指定了 utf8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
对我而言,通常这样做就可以了(当然,如果内容本身是utf8编码的)。
如果设置了 content-type,你就不需要将其转换为html实体。
你的内容没问题,问题在于服务器发送的头部信息:
Connection:Keep-Alive
Content-Length:502
Content-Type:text/html
Date:Thu, 18 Feb 2010 20:45:32 GMT
Keep-Alive:timeout=1, max=25
Server:Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.7 with Suhosin-Patch
X-Powered-By:PHP/5.2.4-2ubuntu5.7
应该将Content-Type设置为Content-type: text/plain; charset=utf-8
,因为此页面不是HTML并使用utf-8编码。在Mac上,Chromium会猜测ISO-8859-1并显示您正在描述的字符。
如果您无法控制该网站,请在检索内容的任何函数中指定编码为UTF-8。我对PHP不够熟悉,不知道具体如何操作。
我知道这个问题已经有了答案,但是在我的情况下设置元标记并没有帮助,并且选择的答案也不够清晰,所以我想提供一个更简单的答案。
为了保持简单,将字符串存储到变量中,并按照以下方式处理:
$TVrageGiberish = "It’s Getting the Best of Me";
$notGiberish = mb_convert_encoding($TVrageGiberish, "HTML-ENTITIES", 'UTF-8');
echo $notGiberish;
这应该返回你想要的内容:它正在击败我
如果你正在解析某些内容,你可以在将值赋给变量时执行转换,例如下面的代码,其中$TVrage
是一个包含所有值的数组,在此示例中,这些值来自一个带有“Title”标记的XML源,其中可能包含特殊字符,如‘
或’
。
$cleanedTitle = mb_convert_encoding($TVrage->title, "HTML-ENTITIES", 'UTF-8');
请尝试以下操作:
如果 $text
包含奇怪的字符,请执行以下操作:
$mytext = mb_convert_encoding($text, "HTML-ENTITIES", 'UTF-8');
Open wp-config.php
Comment out define('DB_CHARSET', 'utf8')
and define('DB_COLLATE', '')
/** MySQL hostname */
define('DB_HOST', 'localhost');
/** Database Charset to use in creating database tables. */
//define('DB_CHARSET', 'utf8');
/** The Database Collate type. Don't change this if in doubt. */
//define('DB_COLLATE', '');
如果所有方法都无效,这可能是您的最佳解决方案。
<?php
$content="It’s Getting the Best of Me";
$content = str_replace("’", "'", $content);
echo $content;
?>
==or==
<?php
$content="It’s Getting the Best of Me";
$content = str_replace("’", "'", $content);
echo $content;
?>
我们尝试使用以下方法来实现成功:
mb_convert_encoding($text, "HTML-ENTITIES", "ISO-8859-1");
html_entity_decode(mb_convert_encoding(stripslashes($text), "HTML-ENTITIES", 'UTF-8'))