这是字符集不一致造成的。
修改mysql的默认字符集是通过修改它的配置文件来实现的。一般分两种情况:
Windows平台
windows下的mysql配置文件是myini,一般在c:windowsmyini或者c:winntmyini可 以直接在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
service mysql restart 或 /etc/initd/mysql restart
或用其他方法重新启动,就生效了。
Unix(linux)平台
linux下的mysql配置文件是mycnf,一般是/etc/mycnf,如果找不到可以用find命令找一下:
find / -iname mycnf
在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
net stop mysql
1、检查并修改mysql的myini的配置文件。
default-character-set=utf8
2、建立数据库是要指定字符集。
create database mydb default character set utf8 collate utf8_general_ci;
3、建立数据表示也要指定字符集。
CREATE TABLE IF NOT EXISTS `mydb` (
`username` varchar(64) NOT NULL,
`userid` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
解决方法:
1、打开mysql安装目录下的myini文件,找到如下代码:
# CLIENT SECTION
# ----------------------------------------------------------------------
[client]
port=3306
[mysql]
default-character-set=latin1
# 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]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory All paths are usually resolved relative to this
basedir="D:/Program Files/MySQL Server 50/"
#Path to the database root
datadir="D:/Program Files/MySQL Server 50/Data/"
# 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=gb2312
2、打开hibernate配置文件,添加如下代码:
<property name="url">
jdbc:mysql://localhost/testuser=root;password=123456;useUnicode=true;characterEncoding=gbk
</property>
3、重启mysql,ok!
查找了N多资料,自己总结尝试可以,我的就是怎么解决的,如果你的问题解决了,麻烦说一声哦,祝你好运!
你好,大多数都是字符集不一致导致的乱码问题。对于出现乱码或问号等不正常显示问题,根据数据库字符集,正确配置参数NLS_LANG,一般可以解决,如果仍出现乱码,则可能和所使用的工具的字体编码设置有关。
那么解决出现的乱码时应该依次检查:查看数据库和客户端字符集,主要设置NLS_LANG;查看系统语言设置LANG参数;查看所用终端、工具字体编码设置。
针对所出现的问题,查看plsql的字体编码为GB2312,CRT的字体编码是UTF-8,修改为GB2312,centos终端修改-终端设置-字符编码修改,乱码问题解决。
无论数据库或者是页面 出现乱码 问号 空白 那基本就是编码不一致的问题。你数据库设置了什么编码 比如是UTF-8 那么你页面也设置这个编码 并且使用header("Content-Type: text/html; charset=utf-8");让浏览器也使用这个编码 并且在连接数据库的时候 mysql_query("SET NAMES utf8"); 那么就不会出现乱码 问号 空白等情况了。 其实就是让数据库 页面 浏览器编码一致就可以。你检查一下。
以上就是关于为什么MySql的表记录中有些中文显示问号全部的内容,包括:为什么MySql的表记录中有些中文显示问号、部分中文插入mysql数据库变成问号,怎么回事、我的MYSQL里面的中文都变成问号了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)