越来越€™,而不是撇号(')在PHP
-
21-09-2019 - |
题
我已经试过换文或从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');
如果你在这里因为你们遇到的问题与垃圾字在支,试试这个:
打开
wp-config.php
评论了
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("’", "'", $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');
和你做..
有关fopen
和file_put_contents
,这将工作:
str_replace("’", "'", 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,现在它显示良好的前端