2013-02-28 68 views
2

我正在閱讀CMS中包含版權標記®的字符串。但是,當我將該字符串呈現給我的站點時,我在版權標記之前獲得Â。例如,我的CMS中有Microsoft®,但它呈現Microsoft®在特殊字符前面呈現

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

回答

3

「版權標誌」的字符編碼是0xA9。但是,這在0x000x7F的範圍之外。

因此,在諸如ISO-8859-1或Windows-1252的單字節字符集中,它工作正常。

但是在像Unicode這樣的多字節集合中,它表示爲0xC2 0xA9。巧合的是,第二個字節與原始字節相同,僅此而已。

要解決,你需要確保你的編碼是一致的。一種解決方案是確保你的HTML文檔有UTF-8作爲它的charset

+0

我們的HTML文檔有'UTF-8'集。 – Jon 2013-02-28 23:56:36

0

嘗試utf8_encoding然後utf8_decoding如果你「移動」文本的周圍。 ,並檢查是否在您使用正確的編碼HTML的標題。

請注意,如果您已將數據庫中的數據搞亂了,您將無法恢復它。

0

檢查PHP [default_charset][1]設置在php.ini或在你的PHP文件

<?php 

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

?> 

設置編碼到你的php文件使用ini_set()utf8

設置HTML meta標籤:

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