簡體   English   中英

在UTF-8中顯示法語重音字符的問題

[英]Problems displaying French accented characters in UTF-8

我正在使用CakePHP構建的法語網站。 我已嘗試多種功能嘗試將文本轉換為UTF-8並正確顯示,但到目前為止沒有成功 - 任何帶重音的字母都顯示為帶有問號的黑色菱形。 當我將瀏覽器中的字符集更改為ISO-8859-1時,它們會正確顯示,但我想使while網站符合UTF-8標准。 我用過:

html_entity_decode($ string,ENT_QUOTES,'UTF-8'); htmlspecialchars($ string,ENT_QUOTES,'UTF-8'); 函數utf8_encode

但沒有雪茄。 頁面在標題中設置為UTF-8

MySQL數據庫也使用UTF-8。 如何在UTF-8中正確顯示重音字符?

檢查你的@@character_set_results 默認情況下,MySQL使用latin1 ,而不是utf8 嘗試SET NAMES utf8mysqli :: set_charset

更新:以下是檢查正在使用的字符集的方法:

mysql> SHOW VARIABLES LIKE '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       | 
| character_set_connection | utf8                       | 
| character_set_database   | utf8                       | 
| character_set_filesystem | binary                     | 
| character_set_results    | utf8                       | 
| character_set_server     | utf8                       | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+

閱讀dev.mysql.com上的更多內容。

第一:檢查你的php文件編碼! 我在Mac上工作,我使用Coda編程,它有一個轉換字符集的選項,有時我會遇到這樣的麻煩,轉換為UTF-8總是修復它們。 我認為Notepad ++可以在Windows上實現。 (如果在PHP文件上執行此操作,則它們上的每個字符串都不需要函數htmlspecialchars()html_entity_decode等)

第二:如果你正在使用HTML輸出,請檢查你的標題上是否有<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

第三:做@janmoesen在你的MySQL數據庫上說的話。

告訴我一些事情。

我剛剛修復了一個非常類似的問題,重音字符沒有顯示。 我的數據庫表是utf-8編碼的,我的html標題是為utf-8正確設置的。

我沒有為我的MySQL連接指定一個字符集,在我的情況下我正在使用PDO。

$this->pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8;", $username, $password);

現在沒問題!

如果這有助於任何人使用PHP類。

我的解決方案是將Character Encoding設置為我的Connection。

//connect to MySQL and select DB
public function open_connection() {
    $this->connection = new mysqli( DB_SERVER, DB_USER, DB_PASS, DB_NAME );
    if ( !$this->connection ) {
        die( "Database connection failed: " . mysqli_error() );
    }
    mysqli_set_charset($this->connection,"utf8");
}

暫無
暫無

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

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