MySql亂碼的終極解決方案

2021-04-17 20:25:43 字數 1017 閱讀 2258

伴隨著無數次重灌mysql,並且花費一整天的時間後,終於使得mysql不再亂碼。

我的mysql安裝時候,選擇的編碼為「best」,即支援utf-8的編碼。在mysql中執行status,也顯示所有的編碼為utf8。

1.如果在資料庫中,使用command line直接插入中文資料,報錯,提示「data too long for column***」。 根本無法插入。

2.如果使用phpmyadmin(已設為utf-8編碼登陸)插入資料,在phpmyadmin中檢視是正常的中文,在網頁(程式)中顯示為不正常。

3.如果在網頁(程式)裡面執行插入語句,則在網頁(程式)中可以正常檢視,可是在phpmyadmin中看到的為亂碼。

0.使用不同的編碼來瀏覽網頁。

1.改變網頁檔案編碼。

2.改變head區的設定。

3.重新設定mysql的編碼。

4.更換資料庫。  

5.重灌資料庫

結果都不行。

可是在xoops系統中網頁插入的資料,使用phpmyadmin也可以正常瀏覽。而且是同乙個資料庫同乙個表,我自己寫程式插入中文就亂碼。

這樣操作下來,就可以使得我的程式和phpmyadmin看到的結果是一樣的了。  

雖然這個問題解決了,不過因為對mysql資料庫還不是很了解,依然存在疑問:

1。這兩句執行後的有效範圍是多大?是不是只對未來的乙個查詢語句有效?

mysql_query("set character set utf8 ;")  or die(mysql_error()); mysql_query("set names 'utf8'") or die(mysql_error());

2。為什麼mysql的status顯示為utf8,還是要手工再設定一次呢?難道是告訴mysql,我的客戶端需要什麼編碼?是否有預設值設定?

重灌mysql的時候,請一定要注意乙個問題。(windows 下)

當你解除安裝完mysql後,它不會提示你重新啟動系統;

但是你要重新啟動,並且把它相關的資料夾都刪除了再重灌,才可以保證正確。

MySQL亂碼終極解決方案

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

Mysql亂碼終極解決方案

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

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 ...