linux服務器數據到前端網頁出現中文亂碼。

事情是這樣的。mysql

初學linux,本身在本地虛擬機linux系統裏搭建了web服務器。就把原來在window上開發的項目放到linux上來。我用的是rz命令用xshell來本地上傳。項目其餘的一切沒什麼問題,就mysql導入sql文件的時候出現了中文亂碼的問題。但在服務器上的數據是沒有問題的。linux

通過本身的研究並解決了問題,緣由有兩點:web

  1. 數據庫編碼不對,由於linux系統默認編碼是以英文爲主,即爲latinl. 這與咱們通常設置的utf8不符合,因此 這是一個緣由。
    sql

    應對方法:
    shell

    默認登陸mysql以後能夠經過SHOW VARIABLES語句查看系統變量及其值。數據庫

    命令:mysql> show variables like '%character%';服務器

    好,若是發現如圖所示201204151624142.jpg
    ide

那說明編碼確實不符。編碼

接下來須要修改mysql配置文件spa

vi /etc/my.cnf

  在[client]下增長default-character-set=utf8

  在[mysqld]下增長default-character-set=utf8

  同時加上init_connect='SET NAMES utf8' (設定鏈接mysql數據庫時使用utf8編碼,以讓mysql數據庫爲utf8運行)

201204151624143.jpg

修改保存完成後 重啓mysql服務

service mysqld restart

進入Mysql 從新查看mysql數據編碼 如圖所示

201204151624144.jpg

那麼恭喜你 更改mysql數據編碼成功。

2.第二點 比較簡單 但每每是忽略了簡單的問題 致使找不到問題所在 也仍是文件編碼問題

從window上上傳的文件 到linux下 運行起來會存在有數據編碼的問題。

sql文件我是從window上傳的 因此 理所固然  這個問題就存在了。

因此 在導入sql文件以前  應該把sql文件的編碼給轉換成linux識別的編碼 命令以下:

vi 目標文件

鍵入 :setfileformat=unix  回車 保存

完成後 數據恢復正常。

這文章主要是寫給本身未來看的  各位前輩 若有不對的地方 還望多多指點。

相關文章
相關標籤/搜索