您的位置:程序门 -> windows专区 -> windows nt/2000/xp/2003



windowxp中文版的默认字符编码是什么?是gbk么?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


windowxp中文版的默认字符编码是什么?是gbk么?
发表于:2008-01-18 16:32:50 楼主
gbk是否就等于gb-2312?那gb-18030又是怎么回事?请知道的点拨一下,看这样的资料很多,就是不是很明确~
发表于:2008-01-20 06:02:101楼 得分:0
你把字符编码与字符集混为一谈了。
编码实际上是指ascii、unicode、mbcs、utf-8等概念,windows2000以后的缺省编码是unicode,与是否中文版/英文版无关;系统内部也支持   ascii(英文就是有优先),但使用的api是另外一套;其他的要经过转换。

字符集是另外一回事,它是单一语言的一个编码子集(甚至不是完整的),它与另一个概念密切相关:代码页(codepage)。系统通过cp将非英文的其他字符映射到unicode空间里。简体中文xp缺省代码页是cp936,本身已经支持gb18030(这是一个强制执行的国家标准),gbk是gb18030的特例,只支持到两个字节(gb18030可以到4个字节,不过通常不会用到,只是留下扩展余地,就好像unicode大部分情况是指unicode-16,实际上unicode-32也确实存在),但一般情况下把gbk看做是gb18030也问题不大。
发表于:2008-01-21 09:47:092楼 得分:0
谢谢楼上给我的解答:)
也就是说简体中文xp的缺省用字符集是gb18030了,但我们经常用到的只是gbk(gb2312)这个子集里的字符。对不?

现在问题是这样的unix服务器端的字符编码因该是utf-8,用简体中文的windowsxp作为客户端与服务器端进行数据交互。
举个简单的例子,目的是:把一个“我是简体中文windowsxp”这样一个文字列发送到服务器端,服务器端仍能够正常显示,不出现乱码。

那么,照这么说,我所做的应该是在unicode和utf-8两种编码之间的转换?然后进行传输?
因此我想的解决方案应该是,在传输之前,应该是先把gbk/gb-18030转换为unicode,然后在把unicode转换为utf-8,之后再把utf-8格式的文字列发送出去,这样就可以保证服务器端的正常显示了?

抑或是有什么更有优点的解决方案?

我以前没有接触过字符集,字符编码方面的东西,所以很是没头绪,希望楼上的和其他csdn的弟兄们帮忙给指点一下,谢谢:)


快速检索

最新资讯
热门点击