数据库插入数据是问号

数据库插入数据是问号,第1张

检查并修改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中连接数据库时汉字都变成问号是怎么回事等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9488503.html

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

发表评论

登录后才能评论

评论列表(0条)

保存