为什么中文存入数据库中会乱码

为什么中文存入数据库中会乱码,第1张

你的mysql客户端和你的mysql服务器的编码不一样,,应为utf8编码的中文是3个字符,而gbk编码的中文是两个字符,,这样解析出来的中文就是乱码了。。你需要该数据库的字符集编码。。。具体如下:

找到mysql

的ini配置文件

在[client]这里加上default_character_set

=

utf8

在[mysqld]这里加上character_set_server

=

utf8

不出意外应该可以了

如果SQL Server 系统排序规则为"SQL_Latin1_General_CP1_CI_AS",那么数据库及数据库字段排序规则都默认为"SQL_Latin1_General_CP1_CI_AS",如果字段为varchar,插入中文,数据库显示为"",且数据无法修复。解决办法如下:

1。 修改字段排序规则为"Chinese_PRC_CI_AS",varchar改nvarchar,SQL插入语句中,中文字符前加"N",可以插入中文字符。

2。 修改数据库排序规则为"Chinese_PRC_CI_AS",字段保持varchar,SQL语句不变,插入中文失败,查看字段属性后发现,字段排序规则实际上没有变化,还是默认为"SQL_Latin1_General_CP1_CI_AS",再修改字段排序规则,varchar不变,SQL不变,可以插入中文字符。

总结:

1。 修改系统排序规则没有试过。

2。 修改数据库排序规则不会把数据库中字段的排序规则改掉,但是为了显示中文,数据库排序规则必须改。

3。 仅仅修改字段排序规则,还不能完全解决问题。

oracle数据库查询时出现乱码,很可能是该数据库的字符集设定不支持中文,但是表中数据含有中文,所以变为乱码。

如果是字符集原因,解决方法如下:

1、shutdown immediate; 关闭数据库

2、startup mount; 开启数据库至挂载模式(只挂实例,不启动数据库)

3、alter system enable restricted session;开启会话限制

4、alter system set aq_tm_processes=0;修改系统参数

5、alter system set job_queue_processes=0;修改系统参数

6、alter database open;启动数据库为open

7、alter database national character set internal_user (zhs16gbk);修改字符集

8、alter system disable restricted session;关闭会话限制

括号内可填写字符集类型,zhs16gbk、AL32UTF8等字符集都支持中文。

以上就是关于为什么中文存入数据库中会乱码全部的内容,包括:为什么中文存入数据库中会乱码、sql语句有中文,乱码怎么解决、如何解决oracle数据库查询时出现乱码问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存