我正在阅读CMS中包含版权符号®
的字符串。但是,当我将此字符串呈现给我的网站时,我会在版权符号前面找到Â
。例如,我的CMS中有Microsoft®
,但它会呈现Microsoft®
。
$title = (string) $myString;
$title = htmlentities($title,ENT_NOQUOTES,'UTF-8',false);
$title = str_replace(array('<','>'),array('<','>'), $title);
var_dump( $title );
答案 0 :(得分:3)
“版权符号”的字符代码为0xA9
。但是,这超出了0x00
到0x7F
的范围。
因此,在ISO-8859-1或Windows-1252等单字节字符集中,它可以正常工作。
但是在像Unicode这样的多字节集中,它表示为0xC2 0xA9
。巧合的是,第二个字节与原始字节相同,仅此而已。
要修复,您需要确保编码一致。一种解决方案是确保您的HTML文档UTF-8
为charset
。
答案 1 :(得分:0)
尝试utf8_encoding然后utf8_decoding如果你“移动”文本arround。 并检查是否在html的标题中使用了正确的编码。
请注意,如果你已经在数据库中弄乱了它,你将无法恢复它。
答案 2 :(得分:0)
检查php.ini中的php [default_charset][1]
设置或在php文件中使用ini_set()
<?php
ini_set("default_charset", "utf-8");
?>
将php文件的编码设置为utf8
设置html元标记:
<meta equiv="Content-Type" content="text/html; charset=utf-8">