mysql的默认编码方式和代码的编码方式不一致,而引起显示问号。
解决办法:
1、打开Eclipse;
2、打开J2EE项目;
3、可以看到代码的中文编码方式不是utf8(例如是gbk),mysql的默认编码为utf8。由于两者不一致,所以在将字符插入数据库时就出现了问题;
4、所以此时只需要将代码的编码方式改为utf8即可解决。
一个汉字占多少长度与编码有关:
若采用UTF-8编码,则一个汉字=3个字节。
若采用GBK编码,则一个汉字=2个字节。
项目中oracle10g数据库表字段为varchar(n)类型,存英文很简单,只要字母个数不大于n即可。但是对于汉字,按照同样的方法就不行了。因为对于汉字不同的字符集,在数据库占用的字节是不一样的。
比如varchar(10)类型的字段,UTF-8的汉字,只能存3个,gbk字符集的汉字却能存5个。所以在程序中根据表字段varchar的大小,保存或更新时作出必要的校验否则后台会报错。
对于一个网站、论坛来说,如果英文字符较多,则建议使用UTF-8节省空间。不过现在很多论坛的插件一般只支持GBK。
GB2312是GBK的子集,GBK是GB18030的子集
GBK是包括中日韩字符的大字符集合
扩展资料
字符最终是以二进制形式存储在磁盘的,这也是为什么要有字符编码的原因,因为计算机最终都要以二进制形式存储,那么编码规则就是用什么样的二进制来代表这个字符。
例如,ASCII码表中,01000011这个二进制对应的十进制是67,它代表的就是英语字母C。准确概述来说,字符编码方式是用一个或多个字节的二进制形式表示字符集中的一个字符。
每种字符集都有自己特有的编码方式,因此同一个字符,在不同字符集的编码方式下,可能会产生不同的二进制形式。
另外,字符集合只是指定了一个集合中有哪些字符,而字符编码,是为这个集合中所有字符定义相关编号,而字符集(注意与字符集合的区别)是字符和集合与编码规则的混合体,这也是有时候编码方案代表字符集的原因。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)