社区
Web 开发
帖子详情
关于gb2312和GBK的一点疑问,请高手勿取笑
rainworm
2004-03-17 03:19:02
我们知道,数据库是以gb2312编码形式保存
但在jsp页面中设置charset=GBK的时候
在显示数据库内容的时候不用经过转码就能正常显示
请问gb2312和GBK两者之间有何相同之处和不同之处?
请高手赐教
...全文
72
9
打赏
收藏
关于gb2312和GBK的一点疑问,请高手勿取笑
我们知道,数据库是以gb2312编码形式保存 但在jsp页面中设置charset=GBK的时候 在显示数据库内容的时候不用经过转码就能正常显示 请问gb2312和GBK两者之间有何相同之处和不同之处? 请高手赐教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rainworm
2004-03-17
打赏
举报
回复
感谢 kingmaxno1朋友指点,偶接触的数据库不是太多
:)
Leemaasn
2004-03-17
打赏
举报
回复
糟糕,,,又被人說完了。。。
kingmaxno1
2004-03-17
打赏
举报
回复
楼主,你这句说的不对
“我们知道,数据库是以gb2312编码形式保存”
不是所有数据库都是以gb2312编码形式保存,我知道的,mysql和oracle就不是用这种编码保存的,不信你转码后加进去,在不转码取出来试试,
同意楼上的说法,gb2312<gbk但是有的系统不支持gbk,所以建议使用gb2312,通用性强一些
rainworm
2004-03-17
打赏
举报
回复
谢谢各位,特此结帐!
yanglei031
2004-03-17
打赏
举报
回复
Java系统内的字符以双字节存储,采用unicode(utf-16之一)编码。(估计jdk后续版本的java字符编码可能提升为4字节,这样可彻底解决东方国家字库问题。)
Utf-8是一种标准存储编码格式,用utf-8编码后的字节流具有非常好的纠错和兼容能力。用utf-8编码(encode)unicode码时不会有信息损失。当然用utf-8解码(decode)utf-8编码的字节流,生成unicode码时也不会有信息损失。但禁止用utf-8解码非utf-8编码的字节流。总之Utf-8可以编码任何unicode 码,但只能解码utf-8编码的字节流。
Utf-16和utf-8用法是一样的,仅是一点不同:utf-16是双字节倍数编码,utf-8是单字节倍数编码,在英文国家里用utf-8和ascii编码后的字节流是一样的,这样有利于系统平稳升级到支持utf-8的系统里,但系统要升级到支持utf-16就要把所有数据都更新一遍,这显然不能接受。注意:utf-16根据字节排序不同有两种编码
Iso8859-1是西方国家频繁使用的字符编码格式。用iso8859-1编码unicode码中的东方字库部分的字符时统统编码成??,也就是说:用iso8859-1编码unicode码时信息会有损失。但用iso8859-1解码任意(iso8859-1编码的和非iso8859-1编码的)字符流时,信息不会有损失,这是因为一个字节中的所有256个字符对iso8859-1都是合法的都是合法的。有时候在一些linux操作系统和一些应用服务器里,默认的解码方式是iso8859-1,这是大多数乱码的原因。
Gb18030,gbk,gb2312是汉字字符的编码格式,用gb18030(gbk,gb2312和gb18030是同一系列,不过字库要小,但使用方式是一样的,这里不区分,统统用gb18030)编码unicode码时非中英文的字符会被编码为?,也就是说,用gb18030只能编码unicode中的中英文字符,其他的字符都会被损失掉。同样用gb18030解码只能解码gb18030编码的字符流。
Xml文件中 是告诉浏览器要用要用指定的编码格式解码自身这个文件,当然要求浏览器首先要支持这个编码格式(在客户端),jsp页面的字符集是告诉jsp服务器要用要用指定的编码格式解码自身这个jsp文件(在服务器段). 然而在servlet程序中response.setContentType("text/html; charset=GBK");是告诉servlet程序用指定编码格式编码(在服务器段)
字符集转换的基本思想很简单,用某种字符编码规则编码,就用什么编码规则解码,经常出问题的深层次原因是java对字节流未提供编码信息,可以认为这是一个严重的失误。估计未来的java能提供这样的信息。…待续
涉及编码问题的地方有:java类文件编辑时,java类文件编译时,实施文件,服务器指定,jsp文件内指定,xml(html)内指定,servlet文件指定,资源连接点配置中指定.
不能正常显示原因通常在两个地方:字符集;字库。对于通用的软件,一般都提供完整的字库支持。所以一般问题是解码不正确。
四周的风景
2004-03-17
打赏
举报
回复
好
wandou999
2004-03-17
打赏
举报
回复
gb2312和GBK从本质来说没什么不同,不同的系统默认的不同,有的默认GBK(大多数)
但它识别gb2312,于是把gb2312转化成GBK,有的系统则不可以!!!!!!
ddadoris
2004-03-17
打赏
举报
回复
gb2312范围较小,只包括两三千个常用汉字。
GBK包含了几乎所有的汉字。
所以如果有生僻汉字不能正常显示,而其他汉字可以,那么就使用GBK就解决了
sean_gao
2004-03-17
打赏
举报
回复
GB2312<GBK<GB18030
GB2312大概是94年出来的,GBK是2000年的标准吧。
9节课征服「字符编码」
ASCII、
GB2312
、
GBK
、GB18030Unicode、UTF-8、UTF-16、UTF-32
彻底搞明白
GB2312
、
GBK
和 GB18030
日常工作的过程中,关于字符编码的问题经常让人头疼不已,这篇文章就来捋一捋关于
GB2312
、
GBK
、GB18030 相关的知识 以及它们和 Unicode 的关系 简介
GB2312
1980 年,中国发布了第一个汉字编码标准,也即
GB2312
...
GB2312
和
GBK
的区别
1、收录不同:
GB2312
标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;
GBK
共收入21886个汉字和图形符号。 2、表示不同:
GB2312
对任意一个图形字符都采用两个字节表示,并对所收汉字进行了“分区”...
【转】彻底搞明白
GB2312
、
GBK
、GB18030和UTF-8
GB2312
(2个字节)1980 年,中国发布了第一个汉字编码标准,也即
GB2312
,全称 《信息交换用汉字编码字符集·基本集》,通常简称 GB (“国标”汉语拼音首字母), 共收录了 6763 个常用的汉字和字符,此标准于次年...
java输出
GB2312
、
GBK
、GB18030、UTF-8所有的字符
【代码】java输出
GB2312
、
GBK
、GB18030、UTF-8所有的字符。
Web 开发
81,090
社区成员
341,731
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章