怎样区分乱码和正常汉字(PC下)---根据编码能分清楚吗

Alexpdk 2003-09-30 12:41:55
请问PC下汉字编码的范围是多少?
...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
AthlonxpX86 2003-09-30
  • 打赏
  • 举报
回复
哦~!对了,W版的函数可能能够直接使用Unicode编码,但一般情况下默认使用A版的函数
AthlonxpX86 2003-09-30
  • 打赏
  • 举报
回复
字符集不对就会出现乱码,另外还有下面的情况也会出现乱码

中文版win2000一般使用GBK编码,虽然支持Unicode编码,但只是间接支持Unicode编码,Unicode编码的文本会在开头标示 标志是FF FE,字符处理软件通过此标示来确定文本是否是Unicode编码,然后把后面的编码转换成GBK使用,因此如果你的软件读出这样的文本装到CString中然后AfxMessageBox或者TextOut之类显示出来,那将是一堆乱码,一般情况下,windows使用ANSI和GBK混合编码来支持英文字符和中文字符的组合显示,因此这时一个字符串的编码会出现单字节和双字节交叉的现象,如果处理不当,也会出现乱码,这可以通过与0x80来区别
bluebohe 2003-09-30
  • 打赏
  • 举报
回复
把楼上的抄下来收藏:)thanks


汉字编码

ZT

所谓编码,是以固定的顺序排列字符,并以此做为记录、存贮、传递、交换的统一内部特征,
这个字符排列顺序被称为"编码"。

字库的编码是字库组织的依据,也是文字处理的基础。不同国家和地区有不同的编码标准,
和中文字库有关的常见编码有:单字节编码、GB2312-80、GB12345-90、GBK、Unicode编码、
ISO10646 / Unicode字符集、GB18030-2000、BIG5编码、方正748编码,下面简要介绍一下:

■ 单字节编码

MS Windows:Windows Latin 1(ANSI)

MS-DOS:MS-DOS Latin US

Macintosh:Macintosh Roman

■ GB2312-80

全称是GB2312-80《信息交换用汉字编码字符集基本集》,1980年发布,是中文信息处理的
国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。
P-Windows3.2和苹果OS就是以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字
编码、但兼容支持GB2312。

双字节编码

范围:A1A1~FEFE

A1-A9:符号区,包含682个符号

B0-F7:汉字区,包含6763个汉字

GB码共收录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼音排序,二级字
3008,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。

■ GB12345-90

1990年制定了繁体字的编码标准GB12345-90《信息交换用汉字编码字符集第一辅助集》,目的
在于规范必须使用繁体字的各种场合,以及古籍整理等。该标准共收录6866个汉字(比GB2312
多103个字,其它厂商的字库大多不包括这些字),纯繁体的字大概有2200余个。

双字节编码

范围:A1A1~FEFE

A1-A9:符号区,增加竖排符号

B0-F9:汉字区,包含6866个汉字

■ Unicode编码(Universal Multiple Octet Coded Character Set)

国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对各国文字、符号进行统一性
编码。1991年美国跨国公司成立Unicode Consortium,并于1991年10月与WG2达成协议,采用同
一编码字集。目前Unicode是采用16位编码体系,其字符集内容与ISO10646的BMP(Basic
Multilingual Plane)相同。Unicode于1992年6月通过DIS(Draf International Standard),
目前版本V2.0于1996公布,内容包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400
个,保留20249个,共计65534个。

■ ISO10646 / Unicode字符集

全球可以共享的编码字符集。

UCS-4:组八位 平面八位 行八位 字位八位

UCS-2:00组中的00平面是基本多文种平面(BMP),4E00~9FFF 中日韩文字

Ext A(CJK):3400~4DB7,共6584字

Ext B(CJK):42,807个汉字,在第2平面的0100~A836


■ GBK编码(Chinese Internal Code Specification)

GBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。GBK工作小组于1995年10
月,同年12月完成GBK规范。该编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供
1894个造字码位,简、繁体字融于一库。

Windows95/98简体中文版的字库表层编码就采用的是GBK,通过GBK与UCS之间一一对应的码表与
底层字库联系。

英文名:Chinese Internal Code Specification

中文名:汉字内码扩展规范1.0版

双字节编码,GB2312-80的扩充,在码位上和GB2312-80兼容

范围:8140~FEFE(剔除xx7F)共23940个码位

包含21003个汉字,包含了ISO/IEC 10646-1中的全部中日韩汉字


■ GB18030-2000

英文名:Chinese Internal Code Specification
中文名:信息技术 信息交换用汉字编码字符集
基本集的扩充( 2000-03-17发布和实施)
单字节、双字节、四字节编码
向下与国家标准GB 2312信息处理交换码所对应的事实上的内码标准兼容。
在字汇上支持GB 13000.1的全部中、日、韩(CJK)统一汉字字符和全部CJK统一汉字扩充A的字符。

■ BIG5编码

是目前台湾、香港地区普遍使用的一种繁体汉字的编码标准,包括440个符号,一级汉字5401个、
二级汉字7652个,共计13060个汉字。

■ 方正748编码

所谓748编码,是指方正系统在长期应用过程中实施、制定的简、繁体字库编码方式,简体兼容
GB2312且有所扩展,共7156字;繁体兼容GB12345并扩展全部BIG-5汉字,计14943字。此外,方
正748编码还含有丰富的符号库。748编码仅用于方正软件和系统。 


akiko 2003-09-30
  • 打赏
  • 举报
回复
http://members.lycos.co.uk/xuy/azcn/files/e-com/cncoding.txt
bluebohe 2003-09-30
  • 打赏
  • 举报
回复
mark,明天回答
二维码编码解码器源码 本源码实现可以在C#中使用的1D/2D编码解码器。条形码的应用已经非常普遍,几乎所有超市里面的商品上面都印有条形码;二维码也开始应用到很多场合,如火车票有二维码识别、网易的首页有二维码图标,用户只需要用手机扫描一下就可以看到手机版网易的网址,免去了输入长串字符的麻烦。 条形码的标准: 条形码的标准有ENA条形码、UPC条形码、二五条形码、交叉二五条形码、库德巴条形码、三九条形码和128条形码等,而商品上最常使用的就是EAN商品条形码。EAN商品条形码亦称通用商品条形码,由国际物品编码协会制定,通用于世界各地,是目前国际上使用最广泛的一种商品条形码。我国目前在国内推行使用的也是这种商品条形码。EAN商品条形码分为EAN-13(标准版)和EAN-8(缩短版)两种。 二维码的编码标准: 全球现有的二维码多达200种以上,其中常见的技术标准有PDF417(美系标准),QRCode(日系标准),Code49,Code16K,CodeOne,DM(韩系标准),GM(中国标准),CM(中国标准)等20余种。用得最多的是QRcode。 下面借助google的开源项目zxing来实现1D/2D的编码和解码 zxing的功能还是很强大的,最初是用java编写,并支持Android、ios、symbian等手机操作系统。 不过不知是何原因,该官网连一个例子也没有,文档也是字典式的把所有类列出来,一点都没为读者考虑。 下面我把如果使用zxing完成上图所示例子讲解一遍,供初学者参考: 1.我们新建一个Winform测试项目; 2.从官网下载zxing开源项目,大概16m的样子,解压缩后打开zxing-2.1\csharp目录,将该目录拷贝到我们新建的Winform项目下(方便调试和看源码,并非一定要如此); 3.winform项目中添加对zxing项目的引用; 4.按上图所示例子建好控件,“生成条形码”的代码如下: 其中需要注意BarcodeFormat参数,可以打开定义看到具体的编码方式,自己百度每种编码方式对输入的要求。 这里EAN_13编码要求是13位长度的数字,并且满足:把所有偶数序号位上的数相加求和,用求出的和乘3,再把所有奇数序号上的数相加求和,用求出的和加上刚才偶数序号上的数,然后得出和能被10整除。(这个规则校验在UPCEANReader类的checkStandardUPCEANChecksum方法里面,如果不需要,可以去掉) 注意编码问题,在com.google.zxing.qrcode.encoder.Encoder类中修改默认编码为utf-8,否则解码出现的是乱码。 System.String DEFAULT_BYTE_MODE_ENCODING = "UTF-8"; 此处之前是"ISO-8859-1",之所以改成UTF-8是因为,在解码的时候程序会猜测可能的编码,如果猜测失败则默认是UTF-8,代码在com.google.zxing.qrcode.decoder.DecodedBitStreamParser类的guessEncoding方法中。 所以此开源项目也缺少全局性思考,连编码和解码的默认编码方式都不一致。 经网友反映,还是有些中文会出现解码成乱码,而有些又可以,估计还是guessEncoding方法猜测编码出现了偏差,直接将guessEncoding方法写成返回UTF8就行了。 4.实现图片解码,即把条形码或二维码图片解码成其真实内容,当然在pc上应用不大,但可能只是还没发现而已,代码如下: opFilePath是图片路径,你可以用openFileDialog控件打开文件来得到路径。 注意: 点解码按钮前要先选择一张二维码或条形码图片,即先点击“…”按钮选择图片,然后再点“解码”按钮。
MooBook-魔书(手机书阅读器) V0.0.0.9Beta: Windows平台,PC端的手机书阅读软件。 1.目前支持TXT(GB2312/UNICODE/UTF-8)、JAR(普通单文档)、UMD(普通文本/杰奇文本)、HTM(网页文件)和HTML(网页文件)格式的阅读; 2.支持拖拽打开文档及书签直接打开文档; 3.支持自动计算分页及当前阅读页标记; 4.支持书签记录(程序做了限制,最多支持添加100条书签),及书签窗口中的右键菜单控制书签目录的功能。支持书签按照文件名称和添加书签时间排序; 5.支持跳转分页; 6.UMD文件自动更换为分章节阅读; 7.支持单页查找(文字搜索); 8.支持文件信息显示; 9.程序会自动识别TXT(GB2312/UNICODE/UTF8)编码。同时,支持用户手动设置文件的编码显示格式; 10.支持双击分页目录快速阅读; 11.支持快速打开推荐页,点击目录标签仍可返回浏览; 12.支持键盘左右键翻页; 13.在阅读页面的文字上支持右键菜单复制,目前不支持[Ctrl+C]复制文字内容; 14.支持窗口最大化显示,支持拉伸改变窗口大小,阅读区的文字内容会随窗口大小的改变而自动换行; 15.支持使用窗口分割条来动态调整工作区和阅读区的窗口大小; 16.在鼠标按钮的默认设置模式下:用鼠标左键点击窗口分割条上的箭头按钮,支持窗口分割条快速伸缩;用鼠标右键点击窗口分割条上的箭头按钮,支持调整窗口分割条快速伸缩的方向; 17.程序采用UNICODE工程开发,在非中文系统(操作系统需要有中文语言包)下不会出现中文乱码; 18.阅读窗口的内容采用[HTML+CSS]框架结构显示,如需调整文字的颜色、字体和大小等,请手动修改“MooBook\Database\book.css”样式文件进行配置; 19.支持软件在线升级; BUG和建议请您发送到 moobook#126.com ("#"请用"@"替代),我们万分感谢!

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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