我已经试过换文或从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 文档的更多编码选项。

其他提示

请确保您的HTML头指定UTF8

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

这通常是卓有成效的,我(很明显,如果该含量UTF8)。

您不必如果设置内容类型转换为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: text/plain; charset=utf-8,因为这页不是HTML并使用UTF-8编码。在Mac铬猜测ISO-8859-1,并显示您所描述的人物。

如果您不在现场的控制,指定编码为UTF-8,你使用任何函数来获取内容。我不是用PHP非常熟悉,知道如何准确。

我知道问题得到回答,但设置meta标签在我的情况没有帮助和选择的答案是不够清楚,所以我想提供更简单的答案。

因此,为了简单起见,存储串入,像这样的变量和过程

$TVrageGiberish = "It’s Getting the Best of Me";

$notGiberish = mb_convert_encoding($TVrageGiberish, "HTML-ENTITIES", 'UTF-8');

echo $notGiberish;

这应该返回你想要It’s Getting the Best of Me

如果你正在分析的东西,可以同时分配值到这样一个变量,其中$TVrage是阵列中的所有值执行转换,XML中从具有标签“标题”,其可包含特殊字符,例如一个进料这个例子作为‘’

$cleanedTitle = mb_convert_encoding($TVrage->title, "HTML-ENTITIES", 'UTF-8');

如果你在这里因为你们遇到的问题与垃圾字在支,试试这个:

  1. 打开 wp-config.php

  2. 评论了 define('DB_CHARSET', 'utf8')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', '');
    

这听起来像你使用的标准字符串职能UTF8字('),不存在 ISO8859-1.检查您使用 Unicode的兼容 PHP设置和职能。也见 多字节 串职能。

如果一切似乎没有工作,这可能是你最好的解决方案。

<?php
$content="It’s Getting the Best of Me";
$content = str_replace("’", "&#39;", $content);
echo $content;
?>

<强> ==或==

<?php
$content="It’s Getting the Best of Me";
$content = str_replace("’", "'", $content);
echo $content;
?>

我看了一下链接,它看起来像UTF-8给我。即,在Firefox,如果选择查看,字符编码,UTF-8,它将正确显示。

所以,你只需要弄清楚如何让你的PHP代码来处理为UTF-8。祝你好运!

尝试这样:

html_entity_decode(mb_convert_encoding(stripslashes($text), "HTML-ENTITIES", 'UTF-8'))

我们有成功打算使用该另一个方向:

mb_convert_encoding($text, "HTML-ENTITIES", "ISO-8859-1");

刚刚尝试这一点。

如果$text包含奇怪的字符做到这一点:

$mytext = mb_convert_encoding($text, "HTML-ENTITIES", 'UTF-8');

和你做..

有关fopenfile_put_contents,这将工作:

str_replace("&rsquo;", "'", htmlspecialchars_decode(mb_convert_encoding($string_to_be_fixed, "HTML-ENTITIES", "UTF-8")));

使用此

<meta http-equiv="Content-Type" content="text/html; charset=utf8_unicode_ci" />

,而不是这

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

您应检查编码编码起源然后尝试转换为正确的编码类型。

在我的情况,我读的CSV文件,然后导入到数据库中。有些文件显示以及一些没有。我检查编码和看到ASCII编码显示该文件以及其他文件使用UTF-8被打破。所以我用下面的代码转换编码:

if(mb_detect_encoding($content) == 'UTF-8') {
    $content = iconv("UTF-8", "ASCII//TRANSLIT", $content);
    file_put_contents($file_path, $content);
} else {
    $content = mb_convert_encoding($content, 'UTF-8', 'UTF-8');
    file_put_contents($file_path, $content);
}

转换后我推内容到文件然后过程进口到DB,现在它显示良好的前端

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top