MySQL插入中文顯示問號

2021-08-17 06:17:02 字數 1960 閱讀 5271

亂碼問題出現的情況有很多種,針對web開發這一流程來說,可以根據資料的流向來定位亂碼出現的位置。前台發起乙個請求,資料通過http協議到後被接收,這裡資料會進行一次編碼,在ssm環境下,是springmvc來攔截請求進行處理,所以在springmvc中能配置資料的編碼格式,springmvc提供的是乙個filter,在web.xml中配置。

<

filter

>

<

filter-name

>springfilter

filter-name

>

<

filter-class

>org.springframework.web.filter.characterencodingfilter

filter-class

>

<

init-param

>

<

param-name

>encoding

param-name

>

<

param-value

>utf-8

param-value

>

init-param

>

filter

>

<

>

<

filter-name

>springfilter

filter-name

>

<

url-pattern

>/*

url-pattern

>

>

如果經springmvc攔截的中文引數沒有出現亂碼,則說明這裡的編碼沒有出現問題,然後進一步去分析資料的流向。ssm的環境下是mybatis框架與資料庫進行互動,mybatis本身對資料不會進行編碼,但是在與資料庫互動的時候會有編碼的問題,比如在jdbc配置的時候,資料庫連線這裡有乙個編碼的引數需要配置。

driver=com.mysql.jdbc.driver

url=jdbc:mysql://localhost:3306/user?useunicode=true

&characterencoding=utf-8

username=root

如果以上的配置都確定沒有問題和,那麼很大可能性就是資料庫亂碼了,在新建資料庫的時候需要選擇乙個資料的編碼方式。

這裡如果也沒有問題那就可能就我碰到的問題,資料庫存的中文變成問號。在mysql的安裝目錄(預設在c:\program files\mysql\mysql server 5.x)修改my.ini可以解決。mysql中文顯示亂碼或者問號是因為選用的編碼不對或者編碼不一致造成的,我是通過修改my.ini配置檔案解決了中文變問號的問題。5.7之後沒有這個配置檔案。

在[client]節點下新增  default-character-set=utf8 

在[mysqld]節點下新增 (注:collation是排序方式)

character-set-server=utf8 

collation-server=utf8_general_ci 

修改完my.ini檔案後,需要重啟mysql服務,在cmd中輸入以下命令可以啟動或關閉mysql的服務,也可以在任務管理器--->服務 中手動關閉或開啟。

關閉服務 net stop mysql

開啟服務 net start mysql

最後可以登入mysql看看配置是否成功。

show variables like 'char%';  顯示編碼格式

如果都為utf8那就說明配置成功,再去看看亂碼問題解決了沒。

解決mysql中文顯示為問號

網上也有很多解決方案,比較多的就是找到my.ini,然後更改什麼的。但是!我的並沒有my.ini!發現這個事實,我驚呆了!咳咳。淡定 是免安裝的檔案。只在安裝根目錄下有乙個mydefault.ini 然後開啟,在 client 和 mysqlid 下加上 character set server u...

mysql插入表中的中文顯示為亂碼或問號的解決方法

1.我的計算機配置 windows系統 linux沒試過 mysql 5.6 mysql中文顯示亂碼或者問號是因為選用的編碼不對或者編碼不一致造成的,我是通過修改my.ini配置檔案。配置檔案在安裝的根目錄下如下圖 2.然後在my.ini如下修改 mydqld 和 client 段加入 defaul...

mysql插入表中的中文顯示為亂碼或問號的解決方法

1.我的計算機配置 windows系統 linux沒試過 mysql 5.6 mysql中文顯示亂碼或者問號是因為選用的編碼不對或者編碼不一致造成的,我是通過修改my.ini配置檔案。配置檔案在安裝的根目錄下如下圖 原來的為my default.ini 複製裡面的內容改為my.ini,也就是重新命名...