簡體   English   中英

PHP和MySQL中的特殊字符

[英]Special Characters In Php and MySQL

我在PHP中遇到一些特殊字符的問題。 我在mysql中有一個表(utf8_hungarian_ci),其中包含一些帶有特殊字符的文本,例如á,á,Ó,Ö,ö,ü,並且我想在頁面上顯示此文本。 我已經測試過:

$text = htmlentities($text); //to convert the simple spec chars
$search = array("& otilde;","&O tilde;","& ucirc;","&U circ;");
$replace = array("& #337;","& #336;","& #369;","& #368;");
$text = str_replace($search, $replace, $text);
echo $text;

但是,僅當未從數據庫設置$ text時,此代碼才有效。 如果我使用此代碼,並且我的$ text是從數據庫中選擇的,則它不會顯示任何文本,並且如果我僅使用:echo $ text; 沒有htmlentities和替換

我得到這樣的角色:

我知道對此有一些疑問,我已經嘗試了接受的答案,但是它仍然無法正常工作,因此如果您有時間,請幫助我。 還是要謝謝你。 祝大家有美好的一天!

嘗試將其放在您的html標頭中:

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

(此外,您可能需要將文件保存為“ utf-8”文件編碼)

其次,您可以使用它來嘗試翻譯或刪除在您的情況下始終會打印出來的令人煩擾的字符:

$str_out = @iconv("ISO-8859-1", "UTF-8//TRANSLIT//IGNORE", $str_in); 

另外,請嘗試在標頭中設置以使用UTF-8編碼。

在您的PHP文件中,添加

header('Content-type: text/html; charset=utf-8'); 

並在<meta>標記中將編碼指定為UTF-8,以確保您告知瀏覽器。 看看是否可以解決問題。

以及在meta標記中包含UTF-8編碼。

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

編輯:

  1. 如果您有權訪問Apache配置,請查看AddDefaultCharset是否設置為其他編碼。
  2. 嘗試使用mysql_set_charset() (如果使用MySQLi,則嘗試mysqli_set_charset())。

這是一個稍微通用的答案,但是請閱讀我寫的有關PHP / MySQL堆棧中常見字符編碼陷阱的文章,如果仍然有問題,請嘗試解決這些問題。

http://webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid-character-encoding-problems-in-php/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM