2

我正在从我的 CMS 中读取包含版权标志的字符串®。但是,当我将此字符串呈现到我的网站时,我会Â在版权标志之前获得一个权利。例如,我Microsoft®的 CMS 中有,但它呈现Microsoft®.

$title = (string) $myString;
$title = htmlentities($title,ENT_NOQUOTES,'UTF-8',false);
$title = str_replace(array('&lt;','&gt;'),array('<','>'), $title);
var_dump( $title );
4

3 回答 3

3

“版权标志”的字符代码是0xA9。但是,这超出了0x00to的范围0x7F

因此,在 ISO-8859-1 或 Windows-1252 等单字节字符集中,它可以正常工作。

但是在像 Unicode 这样的多字节集合中,它表示为0xC2 0xA9. 巧合的是,第二个字节与原来的相同,仅此而已。

要修复,您需要确保您的编码是一致的。一种解决方案是确保您的 HTML 文档具有UTF-8charset.

于 2013-02-28T23:48:24.167 回答
0

如果您“移动”文本,请尝试 utf8_encoding 然后 utf8_decoding 。并检查是否在 html 的标题中使用了正确的编码。

请注意,如果您已经在数据库中弄乱了它,您将无法恢复它。

于 2013-02-28T23:50:24.920 回答
0

检查[default_charset][1]php.ini 中的 php 设置或ini_set()在您的 php 文件中使用

<?php

ini_set("default_charset", "utf-8");

?>

将编码设置为您的 php 文件utf8

设置 html 元标记:

<meta equiv="Content-Type" content="text/html; charset=utf-8">
于 2013-03-01T01:31:42.417 回答