检查并修改mysql的myini的配置文件
default-character-set=utf8
create database mydb default character set utf8 collate utf8_general_ci
建立数据表示也要指定字符集:
出问题的命令:
CREATE TABLE IF NOT EXISTS `mydb` (
`username` varchar(64) NOT NULL,
`userid` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
正确的命令:
CREATE TABLE IF NOT EXISTS `mydb` (
`username` varchar(64) NOT NULL,
`userid` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在action或者servlet中打印一下,看看这里是不是问号
如果是的话就把参数的字符集处理一下,如果这里是正常的文字而数据库里是问号,就看看你java用的字符集和数据库用的字符集是不是不同,调整为相同字符集就可以了
你从数据库获得的信息是以UTF-8进行编码的,当传递到Myeclipse下,获得的数据是以GB2312 编码的,即Myeclipse会用GB2312对数据库中以UTF-8 编码的字符再次编码,得到的肯定是乱码。
解决方法,推荐的是使用String a = new String("数据库数据"getBytes("ISO8859-1"),"GB2312");将字符转换为GB2312,这样应该就显示正常了
解决方案:
在代码里,在执行select语句之前,加上
mysql_query("set
names
'utf8'");
注意,mysql数据库也要设置utf8,浏览器显示和文件类型都设置为utf-8
设置utf8原因:
UTF-8(8-bit
Unicode
Transformation
Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken
Thompson于1992年创建。现在已经标准化为RFC
3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
以上就是关于数据库插入数据是问号全部的内容,包括:数据库插入数据是问号、为什么在java中添加的数据成功后,在数据库中显示的是问号、Java中连接数据库时汉字都变成问号是怎么回事等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)