簡體   English   中英

字符集不起作用-西班牙語字符

[英]Charset is not working - Spanish characters

這真的讓我發瘋。 我正在建立一個西班牙語網站(意思是許多拉丁字符),並且正在使用Zend框架。

當我保存一個á它會顯示為á 我知道是字符集編碼,但我不明白為什么。

我的頭字符集是<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我的數據庫是utf8_general_ci 我已經將字符集更改為其他字符集,並且始終是相同的問題。

當我看到在我的數據庫,內容被保存,是á

知道為什么會這樣嗎? 謝謝!

這是擺脫編碼難題的方法:

  1. 您的數據庫,表和字段必須使用排序utf8_unicode_ci
  2. 確保您的代碼(HTML,PHP ... all )是UTF-8編碼的。
  3. 始終使用此meta標記: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. 很長:

如果您有權訪問MySQL文件配置my.cnf只需添加以下行:

init-connect='SET NAMES utf8'

這告訴MySQL為每個連接以UTF-8返回結果。

如果您無法編輯my.cnf但使用的是PDO,請按以下方式打開連接:

$pdo = new PDO($dsn, $usr, $pwd, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));

如果您不使用PDO ... 開始使用它,還等什么呢? 同時,如果使用ext / MySQLi,則可以在每次連接后執行此操作:

$mysql->set_charset('utf8');

如果您使用普通的舊版ext / MySQL,則執行以下操作:

mysql_set_charset('utf8', $connection);

可以使用unicode映射ASCII映射之外的字符á和其他字符。

在使用UTF-8字符集存儲表中的數據時,字符已正確存儲。

我建議你

  • 在存儲數據之前
  • 在獲取數據之前

運行查詢SET NAMES UTF-8 這將在照顧ASCII映射之外的字符的情況下獲取您的UTF-8數據。

在輸出數據時,請確保您正在強制/定向瀏覽器以使用UTF-8字符集來打印數據。

暫無
暫無

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

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