ef mysql 中文乱码,mysql解決中文亂碼問題

本文详细介绍了如何解决网页乱码和数据库乱码问题。首先,要确保页面编码统一,如设置为UTF-8。其次,处理页面间参数传递时需设定正确的字符集。对于MySQL数据库乱码,可以通过修改my.ini配置文件,将默认字符集更改为GBK,以及在导入数据库时指定字符集,如使用`ALTER DATABASE`命令。重新启动MySQL服务后,确认字符集设置生效。

解決亂碼最好的方法是在項目設計之初,統一所有的字符集,例如頁面、request對象以及數據庫等等。

一、 幾種常見的亂碼現象:

1、頁面亂碼

單純的頁面亂碼是很好解決的,只要修改頭部適合的字符集即可,如果頁面中文顯示亂碼,你可以把字符集修改為:gb2312或gbk。

2、頁面之間傳遞的參數是亂碼

頁面之間傳遞參數出現的亂碼,就要解決頁面編碼和requset的字符集問題,在參數傳進傳出時重新設置相應的字符集。比如:request.setCharacterEncoding("UTF-8");

3、數據庫亂碼(下面詳細介紹)

二、數據庫亂碼解決方法(Mysql)

頁面和頁面傳值都沒有問題,結果發現存儲在數據庫中的數據出現了亂碼,則問題是出現在數據庫的編碼問題。

下面我已MySql數據庫為例說明解決方法:

如果你安裝數據庫的時候字符集使用的默認選項:latin1

DOS命令下進入數據庫show 一下字符集(命令:show variables like"%char%"; )顯示如下:

Java代碼aHR0cDovL3AucXBpbWcuY24vY2dpLWJpbi9jZ2lfaW1ncHJveHk_dXJsPWh0dHAlM0ElMkYlMkZoYW54aW4wMzExLml0ZXllLmNvbSUyRmltYWdlcyUyRmljb25fY29weS5naWYmc2l6ZT0w aHR0cDovL3AucXBpbWcuY24vY2dpLWJpbi9jZ2lfaW1ncHJveHk_dXJsPWh0dHAlM0ElMkYlMkZoYW54aW4wMzExLml0ZXllLmNvbSUyRmltYWdlcyUyRmljb25fc3Rhci5wbmcmc2l6ZT0w

aHR0cDovL3AucXBpbWcuY24vY2dpLWJpbi9jZ2lfaW1ncHJveHk_dXJsPWh0dHAlM0ElMkYlMkZoYW54aW4wMzExLml0ZXllLmNvbSUyRmltYWdlcyUyRnNwaW5uZXIuZ2lmJnNpemU9MA==

+--------------------------+---------------+

| Variable_name            | Value         |

+--------------------------+---------------+

| character_set_client     | latin1        |

| character_set_connection | latin1        |

| character_set_database   | latin1        |

| character_set_filesystem | binary        |

| character_set_results    | latin1        |

| character_set_server     | latin1        |

| character_set_system     | utf8          |

+--------------------------+---------------+

+--------------------------+---------------+| Variable_name | Value |+--------------------------+---------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | latin1 || character_set_filesystem | binary || character_set_results | latin1 || character_set_server | latin1 || character_set_system | utf8 |+--------------------------+---------------+

1、修改數據庫默認字符集:

打開C:\Program Files\MySQL\MySQL Server 5.0里面的my.ini文件找到這段文字:

引用

# The default character set that will be used when a new schema or table is

# created and no character set is defined

default-character-set=latin1

把default-character-set=latin1改為default-character-set=gbk

這時候show 一下字符集(重新啟動mysql服務 ,命令:show variables like"%char%"; )顯示如下:

Java代碼aHR0cDovL3AucXBpbWcuY24vY2dpLWJpbi9jZ2lfaW1ncHJveHk_dXJsPWh0dHAlM0ElMkYlMkZoYW54aW4wMzExLml0ZXllLmNvbSUyRmltYWdlcyUyRmljb25fY29weS5naWYmc2l6ZT0w aHR0cDovL3AucXBpbWcuY24vY2dpLWJpbi9jZ2lfaW1ncHJveHk_dXJsPWh0dHAlM0ElMkYlMkZoYW54aW4wMzExLml0ZXllLmNvbSUyRmltYWdlcyUyRmljb25fc3Rhci5wbmcmc2l6ZT0w

aHR0cDovL3AucXBpbWcuY24vY2dpLWJpbi9jZ2lfaW1ncHJveHk_dXJsPWh0dHAlM0ElMkYlMkZoYW54aW4wMzExLml0ZXllLmNvbSUyRmltYWdlcyUyRnNwaW5uZXIuZ2lmJnNpemU9MA==

+--------------------------+---------------+

| Variable_name            | Value         |

+--------------------------+---------------+

| character_set_client     | latin1        |

| character_set_connection | latin1        |

| character_set_database   | gbk           |

| character_set_filesystem | binary

| character_set_results    | latin1        |

| character_set_server     | latin1        |

| character_set_system     | utf8          |

+--------------------------+---------------+

+--------------------------+---------------+| Variable_name | Value |+--------------------------+---------------+| character_set_client | latin1 || character_set_connection | latin1 || character_set_database | gbk || character_set_filesystem | binary || character_set_results | latin1 || character_set_server | latin1 || character_set_system | utf8 |+--------------------------+---------------+

2、如果你是導入的數據庫,需要對my.ini做如下修改找到

引用

[client]

port=3306

[mysql]

default-character-set=latin1

把 default-character-set=latin1改為default-character-set=gbk

引用

# SERVER SECTION

# ----------------------------------------------------------------------

#

# The following options will be read by the MySQL Server. Make sure that

# you have installed the server correctly (see above) so it reads this

# file.

#

[mysqld]

找到

增加default-character-set=gbk

然后在設置一下你導入的數據庫字符集即可:

命令:alter database  你的數據庫名 charset = gbk;

重新啟動mysql服務,show 一下字符集(,命令:show variables like"%char%"; )顯示如下:

Java代碼aHR0cDovL3AucXBpbWcuY24vY2dpLWJpbi9jZ2lfaW1ncHJveHk_dXJsPWh0dHAlM0ElMkYlMkZoYW54aW4wMzExLml0ZXllLmNvbSUyRmltYWdlcyUyRmljb25fY29weS5naWYmc2l6ZT0w aHR0cDovL3AucXBpbWcuY24vY2dpLWJpbi9jZ2lfaW1ncHJveHk_dXJsPWh0dHAlM0ElMkYlMkZoYW54aW4wMzExLml0ZXllLmNvbSUyRmltYWdlcyUyRmljb25fc3Rhci5wbmcmc2l6ZT0w

aHR0cDovL3AucXBpbWcuY24vY2dpLWJpbi9jZ2lfaW1ncHJveHk_dXJsPWh0dHAlM0ElMkYlMkZoYW54aW4wMzExLml0ZXllLmNvbSUyRmltYWdlcyUyRnNwaW5uZXIuZ2lmJnNpemU9MA==

+--------------------------+---------------+

| Variable_name            | Value         |

+--------------------------+---------------+

| character_set_client     | gbk           |

| character_set_connection | gbk           |

| character_set_database   | gbk           |

| character_set_filesystem | binary        |

| character_set_results    | gbk           |

| character_set_server     | gbk           |

| character_set_system     | utf8          |

+--------------------------+---------------+

+--------------------------+---------------+| Variable_name | Value |+--------------------------+---------------+| character_set_client | gbk || character_set_connection | gbk || character_set_database | gbk || character_set_filesystem | binary || character_set_results | gbk || character_set_server | gbk || character_set_system | utf8 |+--------------------------+---------------+

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值