如何将一个ASCII码半角字符转换为国标码全角字符?

huaxin 2001-05-16 04:41:00
...全文
757 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxyxl 2001-05-17
  • 打赏
  • 举报
回复
to xiaoyou(三尺剑):
你来啦!老兄,知道总比不知道好吧!
to luodi(无知者无畏):
讲的太好了,希望在CSDN上多发表几分专题。谢谢!
luodi 2001-05-17
  • 打赏
  • 举报
回复
对于汉字来说没有什么全角半角,统统都是全角,是GB2312的标准。
对于标准ASCII中的字母数字及一切可打印字符来说,它们就是所称的半角,是一个字节。
但是在GB2312标准中也存在这些可打印字符,但是目的是提供一个打印或屏幕上看上去相同的东西而已。但它与标准ASCII不仅仅是编码位数上(16对8)不同,而且它的后8位与标准ASCII码之间也不是直接相同的。
你可以去查一下所谓的区位码,GB2312标准本身并没有直接规定一个汉字或全角字母在机器内怎么表示,现在采用的机器内表示(机内码)是采用区位码的变换格式,具体变换方法是在区位码的区和位上分别加一个数来与标准ASCII区别,具体是什么数我忘记了,不过这样处理后前8位与后位都不会是标准ASCII码了,最高位都会是1。
好象一牵涉到汉字的编码,要讲的东西实在太多,先说到这,等想起什么来再补充吧。
  • 打赏
  • 举报
回复
TO:wxyxl(断肠人) 
你又不用汇编,搞这么清楚干吗?呵呵。
老实说,我也不懂,呵呵。
wxyxl 2001-05-17
  • 打赏
  • 举报
回复
to luodi(无知者无畏) :
我又胡涂了,全角、半角、GB2312、ASCII究竟有什么区别和联系啊?以前不知道
全角、半角 究竟是什么意思?GB2312使用2个字节表示一个汉字。。。。
麻烦详细解释一下!拜托!
luodi 2001-05-17
  • 打赏
  • 举报
回复
海盗老兄:这样子出来的东西是没有乱码,但不符合题意呀。
不相信就去看一下GB2312的标准,全角的空格、字符、数字与标准ASCII码的对应编码是不同的,不仅仅是8位与16位的区别,在高8位是有区别的。
举例:半角空格ASCII码是0x20,全角空格是 0xA1 0xA1
wxyxl 2001-05-16
  • 打赏
  • 举报
回复
喔!我还以为半角和全角有另外的意思呢?
原来指的是位数。哈哈!我知道了,谢谢 robber!
虎叔 2001-05-16
  • 打赏
  • 举报
回复
8位和16位的区别吧!
这主要是一些旧系统上的叫法,比如:在DOS 6.0以前的UCDOS汉字系统有这种叫法,为了表示汉字就将两个ASCII码来表示一个汉字编码的方法!
gb2312是双字节码,自然相当于以前的两个ASCII码了!自然能够读出来了!
我在以前的解答中有着方面的代码,你可以看看。好像是解决mail汉字乱麻的问题!
wxyxl 2001-05-16
  • 打赏
  • 举报
回复
to robber(海盗):
什么叫ASCII码半角字符、国标码全角字符?解释一下OK?
难道GB2312就是国标码全角字符吗?
不懂,还忘能告知!
虎叔 2001-05-16
  • 打赏
  • 举报
回复
利用一个流,将你要转换的acii码,以byte的形式写入到该流中,然后用GB2312的编码方式读出即可。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧