为什么从数据库中读出来中文的数据是乱码

为什么从数据库中读出来中文的数据是乱码,第1张

一般是web服务器页面的编码与数据库不一致导致

比如做一些设置<%@Language=JScript @CodePage=936%>

1,<%@codepage="65001"%>

2,<http-equiv="Content-Type" content="text/htmlcharset=UTF-8">

3,Session.CodePage = 65001

4,文件存成 UTF-8

大部分数据库都支持以unicode编码方式,

所以解决与数据库之间的乱码问题比较明智的方式是直接使用unicode编码与数据库交互。

很多数据库驱动自动支持unicode,如Microsoft的SQLServer驱动。

其他大部分数据库驱动,可以在驱动的url参数中指定,如mm的mysql驱动:

jdbc:mysql://localhost/WEBCLDB?useUnicode=true&characterEncoding=GBK。

1、修改安装文件根目录下的我的文件,搜索字段默认特征设置,设置其值为中国字符编码或国际编码之一,重启MySQL服务器;

2、修改数据库编码,在安装目录的根目录下找到出现乱码的数据库对应的文件夹,进入文件夹,找到此数据库的编码配置文件,进行修改,重启MySQL服务器;

3、备份原数据库数据,直接删除此数据库,重新创建数据库并设置编码,再重启MySQL服务器。

4、若仍出现乱码,重装系统即可。

显示乱码有许多原因:

这里主要是MySQL数据库中 因为**【编码不统一】**造成的

Latin1是ISO-8859-1的别名,有些环境下写作Latin-1,最终要改为utf-8

在数据库中输入查询命令:

修改成功后的查看界面:

mysql数据乱码问题可能有以下三种原因:

1.server本身设定问题,例如还停留在latin1版本

2.table的语系设定问题(包含character与collation)

3.客户端程式(例如php,java)的连线语系设定问题

建议使用utf8!!!!

想要避免mysql的中文乱码问题,可以尝试以下方法:

1,对于版本问题,建议去官网更新最新的版本或者比较好用的版本;

2,创建数据库,创建表时没有对字符编码进行设定会造成乱码问题:

创建数据库的时候:CREATE DATABASE `test`

CHARACTER SET 'utf8'

COLLATE 'utf8_general_ci'

建表的时候 CREATE TABLE `database_user` (

`ID` varchar(40) NOT NULL default '',

`UserID` varchar(40) NOT NULL default '',

) ENGINE=InnoDB DEFAULT CHARSET=utf8

3,对于第三种情况,参考一下方法:

编辑linux服务器中/etc/my.cnf文件,在[mysql]段加入default_character_set=utf8

如果只是调试遇到乱码问题:

在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参数

并且在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用utf-8或者gbk。

utf8或者gbk


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9252425.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存