MySQL亂碼終極解決方案

2021-04-08 16:23:42 字數 1021 閱讀 3712

從mysql 4.1開始引入的多語言支援確實很棒,而且一些特性已經超過了其他的資料庫系統。不過在測試過程中發現使用適用於mysql 4.1之前的php語句操作mysql資料庫會造成亂碼,即使是設定過了表字符集也是如此。

mysql 4.1的字符集支援(character set support)有兩個方面:字符集(character set)和排序方式(collation)。對於字符集的支援細化到四個層次: 伺服器(server),資料庫(database),資料表(table)和連線(connection)。

當我們按照原來的方式通過php訪問mysql資料庫時,就算設定了表的預設字符集為utf8並且通過utf-8編碼傳送查詢,你會發現存入資料庫的仍然是亂碼。

其實簡單的方法是通過phpmyadmin來設定。

設定下面幾項:

語言設定為 chinese (zh

-utf-8

)mysql 字符集

: utf

-8 unicode 

(utf8

)mysql 連線校對

:  utf8_general_ci

新增資料庫和資料表的時候,整理項選擇 utf8_general_ci

通過以上設定,在phpmyadmin中操作和查詢的時候,中文字元都不會亂碼了。

但是你會發現,在php程式中用以前的sql語句查詢出來的結果還是亂碼,問題就出在connection連線層上。

解決方法是在成功連線資料庫之後,傳送一句查詢語句:

$this

->

linkid 

= @mysql_connect

($this

->

host

, $this

->

user

, $this

->

password

);@mysql_query

('set names '

utf8

'', 

$this

->

linkid);

Mysql亂碼終極解決方案

mysql亂碼終極解決方案 最近在linux自帶的mysql資料庫中執行了乙個sql檔案,在資料庫中查詢沒有任何問題,可以看到中文資料,但是在jsp頁面中顯示時卻出現了亂碼,在spring的配置資料庫的連線url中,指定了編碼 characterencoding utf 8 而且瀏覽器也是utf 8...

MySql亂碼的終極解決方案

伴隨著無數次重灌mysql,並且花費一整天的時間後,終於使得mysql不再亂碼。我的mysql安裝時候,選擇的編碼為 best 即支援utf 8的編碼。在mysql中執行status,也顯示所有的編碼為utf8。1.如果在資料庫中,使用command line直接插入中文資料,報錯,提示 data ...

PHP MySQL亂碼終極解決方案

1.html頁面有 meta 設定為 utf 8 頁面存為utf 8編碼 2.php頁面有 header 設定為utf 8,頁面存為utf 8編碼 header content type text html charset utf 8 3.資料庫操作之前 mysql query set names ...