数据库中文显示问号?mysql数据库汉字显示问号
老铁们,大家好,相信还有很多朋友对于数据库中文显示问号和mysql数据库汉字显示问号的相关问题不太懂,没关系,今天就由我来为大家分享分享数据库中文显示问号以及mysql数据库汉字显示问号的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
为什么MySql的表记录中有些中文显示问号
这是字符集不一致造成的。
修改mysql的默认字符集是通过修改它的配置文件来实现的。一般分两种情况:
Windows平台
windows下的mysql配置文件是my.ini,一般在c:windowsmy.ini或者c:winntmy.ini可以直接在这个文件里面加上
default-character-set=gbk#或gb2312,big5,utf8
然后重新启动mysql
service mysql restart或/etc/init.d/mysql restart
或用其他方法重新启动,就生效了。
Unix(linux)平台
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find/-iname my.cnf
在这个文件里面加上
default-character-set=gbk#或gb2312,big5,utf8
然后重新启动mysql
net stop mysql
mysql数据库汉字显示问号
原因:
mysql的默认编码方式和代码的编码方式不一致,而引起显示问号。
解决办法:
1、打开Eclipse;
2、打开J2EE项目;
3、可以看到代码的中文编码方式不是utf8(例如是gbk),mysql的默认编码为utf8。由于两者不一致,所以在将字符插入数据库时就出现了问题;
4、所以此时只需要将代码的编码方式改为utf8即可解决。
SAS连接mysql中文一直乱码,都是显示问号,请问如何解决
mysql中文显示乱码或者问号是因为选用的编码不对或者编码不一致造成的,最简单的方法就是修改mysql的配置文件my.cnf。在[mydqld]和[client]段加入
default-character-set=utf8
(有的版本不支持default-character-set=utf8,用character_set_server=utf8来取代 default-character-set=utf8即可)
注:如果没有[client]就手工加入[client]段
( 5.0以上版本修改方法:
修改/etc/my.cnf中的设置,
在[client]节点下添加
default-character-set=utf8
在[mysqld]节点下添加
character-set-server=utf8
collation-server=utf8_general_ci
)
然后重启mysql即可
附关闭启动命令:(
[root@sg211 mysql-cluster]# bin/mysqladmin-u root-p shutdown;
[root@sg211 mysql-cluster]# bin/mysqld_safe--defaults-file=/opt/mysql-cluster/etc/my.cnf--basedir=/opt/mysql-cluster--datadir=/opt/mysql-cluster/data--user=mysql&
)
这时可以验证下是否生效
mysql> show variables like'char%';
+--------------------------+------------------------------------------+
| Variable_name| Value|
+--------------------------+------------------------------------------+
| character_set_client| utf8|
| character_set_connection| utf8|
| character_set_database| utf8|
| character_set_filesystem| binary|
| character_set_results| utf8|
| character_set_server| utf8|
| character_set_system| utf8|
| character_sets_dir|/opt/mysql-cluster/share/mysql/charsets/|
+--------------------------+------------------------------------------+
8 rows in set(0.00 sec)
可以看出都已经更正为utf8了,这样新建立的数据库缺省就是UTF8编码了。
那么已经创建好的数据库及库中的表要如何更改为utf8呢?
用alter语句(修改数据库的字符集不会改变原有数据表的字符集)
utf8:
ALTER DATABASE `数据库` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
ALTER TABLE `数据表` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
gbk(包含gb2312):
ALTER DATABASE `数据库` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
ALTER TABLE `数据表` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
oracle 中插入到表中的中文数据怎么显示是问号
oracle我还不懂,不过我在mssqlsever中也遇到过这样的问题,折腾半天才解决。举个例子在创建表的时候,含有中文的我用nvarchar不用varchar,并且在含有中文的数据之前加个大写的N。如:
//建表
create table T_Preson(ID int not null,F_Name nvarchar not null,F_Age int not null)
//插入数据
insert into T_Preson(ID,F_Name,F_Age) values(1,N'小张',22);
我刚开始学数据库,不知道我的方法对你有没有用,如果回答的不对,请别喷我啊。
文章到此结束,如果本次分享的数据库中文显示问号和mysql数据库汉字显示问号的问题解决了您的问题,那么我们由衷的感到高兴!