最近要把原先的GB编码的java工程转化为UTF-8编码,如果一个个转换,不知道要转到什么时候。还好找了个【GB/BIG5/UTF-8文件编码批量转换程序】,一次性完成转换,爽啊秒画趣拍APP下载-秒画趣拍1.2 最新版
豆葵文件编码批量转换工具(豆葵GB/BIG5/UTF-8转换器)是一个将GB/BIG5/UTF-8等编码相互转换的工具。
1、字符编码、内码,顺带介绍汉字编码
字符必须编码后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内码。早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。
GB2312支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。
从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集(DBCS)。
有的中文Windows的缺省内码还是GBK,可以通过GB18030升级包升级到GB18030。不过GB18030相对GBK增加的字符,普通人是很难用到的,通常我们还是用GBK指代中文Windows内码。
这里还有一些细节:
GB2312的原文还是区位码,从区位码到内码,需要在高字节和低字节上分别加上A0。
在DBCS中,GB内码的存储格式始终是bigendian,即高位在前。
GB2312的两个字节的最高位都是1。但符合这个条件的码位只有128*128=16384个。所以GBK和GB18030的低字节最高位都可能不是1。不过这不影响DBCS字符流的解析:在读取DBCS字符流时,只要遇到高位为1的字节,就可以将下两个字节作为一个双字节编码,而不用管低字节的高位是什么。
2、Unicode、UCS和UTF
前面提到从ASCII、GB2312、GBK到GB18030的编码方法是向下兼容的。而Unicode只与ASCII兼容(更准确地说,是与ISO-8859-1兼容),与GB码不兼容。例如“汉”字的Unicode编码是6C49,而GB码是BABA。
Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。Unicode的学名是"UniversalMultiple-OctetCodedCharacterSet",简称为UCS。UCS可以看作是"UnicodeCharacterSet"的缩写。
根据维基百科全书(http://zh.wikipedia.org/wiki/)的记载:历史上存在两个试图独立设计Unicode的组织,即国际标准化组织(ISO)和一个软件制造商的协会(unicode.org)。ISO开发了ISO10646项目,Unicode协会开发了Unicode项目。
在1991年前后,双方都认识到世界不需要两个不兼容的字符集。于是它们开始合并双方的工作成果,并为创立一个单一编码表而协同工作。从Unicode2.0开始,Unicode项目采用了与ISO10646-1相同的字库和字码。
目前两个项目仍都存在,并独立地公布各自的标准。Unicode协会现在的最新版本是2005年的Unicode4.1.0。ISO的最新标准是10646-3:2003。
UCS规定了怎么用多个字节表示各种文字。怎样传输这些编码,是由UTF(UCSTransformationFormat)规范规定的,常见的UTF规范包括UTF-8、UTF-7、UTF-16。
IETF的RFC2781和RFC3629以RFC的一贯风格,清晰、明快又不失严谨地描述了UTF-16和UTF-8的编码方法。我总是记不得IETF是InternetEngineeringTaskForce的缩写。但IETF负责维护的RFC是Internet上一切规范的基础。
3、UCS-2、UCS-4、BMP
UCS有两种格式:UCS-2和UCS-4。顾名思义,UCS-2就是用两个字节编码,UCS-4就是用4个字节(实际上只用了31位,最高位必须为0)编码。下面让我们做一些简单的数学游戏:
UCS-2有2^16=65536个码位,UCS-4有2^31=2147483648个码位。
UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个plane。每个plane根据第3个字节分为256行(rows),每行包含256个cells。当然同一行的cells只是最后一个字节不同,其余都相同。
group0的plane0被称作BasicMultilingualPlane,即BMP。或者说UCS-4中,高两个字节为0的码位被称作BMP。
将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。在UCS-2的两个字节前加上两个零字节,就得到了UCS-4的BMP。而目前的UCS-4规范中还没有任何字符被分配在BMP之外。
4、UTF编码
UTF-8就是以8位为单元对UCS进行编码。从UCS-2到UTF-8的编码方式如下:
UCS-2编码(16进制)UTF-8字节流(二进制)
0000-007F0xxxxxxx
0080-07FF110xxxxx10xxxxxx
0800-FFFF1110xxxx10xxxxxx10xxxxxx
例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx10xxxxxx10xxxxxx。将6C49写成二进制是:0110110001001001,用这个比特流依次代替模板中的x,得到:111001101011000110001001,即E6B189。
读者可以用记事本测试一下我们的编码是否正确。
UTF-16以16位为单元对UCS进行编码。对于小于0x10000的UCS码,UTF-16编码就等于UCS码对应的16位无符号整数。对于不小于0x10000的UCS码,定义了一个算法。不过由于实际使用的UCS2,或者UCS4的BMP必然小于0x10000,所以就目前而言,可以认为UTF-16和UCS-2基本相同。但UCS-2只是一个编码方案,UTF-16却要用于实际的传输,所以就不得不考虑字节序的问题。
5、UTF的字节序和BOM
UTF-8以字节为编码单元,没有字节序的问题。UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。例如收到一个“奎”的Unicode编码是594E,“乙”的Unicode编码是4E59。如果我们收到UTF-16字节流“594E”,那么这是“奎”还是“乙”?
Unicode规范中推荐的标记字节顺序的方法是BOM。BOM不是“BillOfMaterial”的BOM表,而是ByteOrderMark。BOM是一个有点小聪明的想法:
在UCS编码中有一个叫做"ZEROWIDTHNO-BREAKSPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZEROWIDTHNO-BREAKSPACE"。
这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符"ZEROWIDTHNO-BREAKSPACE"又被称作BOM。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZEROWIDTHNO-BREAKSPACE"的UTF-8编码是EFBBBF(读者可以用我们前面介绍的编码方法验证一下)。所以如果接收者收到以EFBBBF开头的字节流,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。
展开内容
出门儿(出行必备软件)2.3.5最新版
城池攻坚战最低折扣下载-城池攻坚战充值折扣版1.0 特权版
玫瑰花卉装饰边框psd免费版
智能体脂仪app下载-体脂仪1.0.4安卓最新版
Widgetsmith中文汉化版下载-Widgetsmith安卓版1.0.2 最新版
班班幼儿园夜间保安花园游戏下载-班班幼儿园夜间保安花园手机版0.2.0 玩家自制
6.28勒索新变异病毒Petya破解补丁下载-新勒索病毒Petya修复补丁最新免费下载
罗布斯越狱(Tips Roblox JailBreak)8.9 最新版
曲折的旅途(Infinity Zig Zag)1.1 安卓版
中卫众康软件下载-中卫众康软件1.0.40 官方版
奇迹时代3汉化补丁V2.0
hi龟龟下载-hi龟龟app1.1.1 安卓版
吃对了么身体检测APP-吃对了么APP2.2.1安卓专业版
美美出行司机端软件下载-美美出行ios司机端1.0 苹果官方版
缺氧血症多国语言包下载-缺氧血症多国语言包1.2 绿色最新版 【绿色汉化版】
9.0/1,560.1M
六方app是一款福利折扣游戏盒子,这里有海量手游每天上新,且类型多种多样,基本所有类型的游戏都可以在这里找到,而且每款游戏都有其对应的礼包奖励可以免费领取,海量...
淘宝装修素材-2015年淘宝腊八抢年货店铺装修模板素材psd分层高清版
9.4/757.4M
今天小编和大家分享的是一个淘宝装修素材,腊八节素材,具体为2015年淘宝腊八抢年货店铺装修模板素材,psd分层高清版,希望这个抢年货素材大家会喜欢,有需要的朋友...
大牛师傅app安卓客户端下载-大牛师傅app(大牛配送安装)2.5.2 官网最新版
8.3/1,601.0M
大牛师傅app是专门为各位大牛配送安装的师傅们准备的一个手机客户端订单管理软件,在线管理订单,预约客户,简单实用,入驻师傅实名认证,稳定有保障!大牛师傅app软...
8.8/349.4M
星推联盟APP是款专注于帮助短视频创作者们进行创作和赋能的工具软件,一方面它是集合视频剪辑、视觉美化、智能字幕添加等多元化的免费工具,可以让创作者能轻松制作出高...
趣书吧小说大全app下载-趣书吧小说大全ios版1.0.0 手机版
7.5/920.4M
趣书吧小说大全是一款使用十分方便的手机阅读软件,平台涵盖多个不同平台的小说资源,小说种类齐全丰富,软件支持免费阅读,喜欢看小说的朋友们可不要错过了。软件介绍:趣...
9.7/1,677.1M
鱼掌门是一款澳洲房子出租、售卖的软件,依托20年澳洲本地房产租售及物业管理经验打造的一款旨在为用户提供一站式的澳洲房产管家式服务的软件,有用户在澳洲有租房卖房意...
Win10设置无法打开修复工具下载-Win10设置无法打开修复工具1.0 官方版
7.8/267.8M
Win10设置无法打开修复工具,一款非常实用的win10系统优化软件,能够让你快速地进行修复win10系统使用中的问题哦!有需要的朋友欢迎前来东坡下载使用!Wi...
7.6/1,011.9M
这是一个二手卡车综合服务类型平台,通过这个app你可以了解一些卡车的信息资讯,了解卡车结构品牌,很多车友在这里沟通交流,了解一些安全常识!软件介绍车旅地带app...
8.7/658.5M
药师在一些游戏里面也是有很重要的角色的,下面的这款暖洋洋之森的药师也是一款模拟养成类型的游戏,这里你可以治疗各种各样的病人,提升你的治病能力,还是可以跟动物看病...
奇妙创造园下载-宝宝巴士奇妙创造园9.59.00.01 安卓免费版
8.5/1,073.4M
奇妙创造园app是宝宝巴士所打造的一款经典早教启蒙软件,分为生活启蒙和互动故事两个模块,让孩子了解更多的知识,让宝宝全面发展。宝宝巴士奇妙创造园介绍专为儿童打造...
9.9/1,014.0M
现在走在路上都会看到贴的二维码,二维码和我们的生活息息相关了,想知道二维码还能怎么玩吗?音乐二维码app就是一款音乐二维码生成器,让二维码会唱歌,快来下载试试吧...
10.0/1,653.1M
为所有的客户提供更加全面以及更加方便的投资理财方面的服务,这里为你提供一对一的专家服务,随时的可以解决你的各种各样的问题!神龙阳光公司介绍石家庄市藁城区神龙投资...
双人躺平求生无限金币最新版下载-双人躺平求生游戏1.0.5 安卓版
9.0/899.5M
双人躺平求生是一款趣味求生冒险游戏,玩家在游戏中与僵尸对战,守护家园。各种热门武器花样百出,游戏玩法简单自由。丰富的游戏场景作战,每一次对抗都是新的游戏体验。激...
9.9/972.1M
蜀山仙尊是一款玄幻修仙手游。华丽的时装,非常好玩的玩法,可以热血对战,原创的剧情,帮派跨服对战,专属的华丽坐骑,可以轻松养成神装,轻松养成。蜀山仙尊手游介绍蜀山...
KoolMoves Flash Editor最新版(动画制作)9.9.8 免费版
8.6/1,540.8M
KoolMovesFlashEditor最新版是一款动画制作软件,该软件使用方便,操作简单。软件具有多样绘图工具,欢迎有需要的朋友们来东坡下载。KoolMove...
三年级猜英语单词游戏下载-三年级猜英语单词1.0.1 安卓官方版
9.3/984.6M
这是一款非常好玩又实在的单词学习游戏,游戏中玩家将通过少量的字母提示来填充合适的单词,非常适合小学生背单词、记单词,真正达到寓教于乐的好手游,好软件。三年级猜英...
9.1/937.4M
至仁同济云app是一款非常优质的网络购药平台。平台上有非常多非常全面的药品和保健品,广大用户可以在这里购买各种各样的药物,满足各种用户的药物购买需要。平台同时和...
8.4/1,930.9M
中国酒都仁怀是由仁怀市当地推出的生活服务应用平台,涵盖美食,外卖,跑腿,网购等各色服务,致力于给予当地居民用户更加舒适的生活方式,软件应用齐全且方便,绝对是仁怀...
9.5/329.1M
侠客游是一款江湖题材的策略经营类手游。游戏有着丰富的玩法内容,以江湖武林为题材背景,玩家将成为一方门派的掌门,慢慢的经营自己的门派。多种游戏模式,培养门客,组建...
米加小镇世界披萨店下载更新-米加小镇世界披萨店版本1.9 最新版
8.6/62.1M
米加小镇世界披萨店是邮局版本后的一个版本,披萨店版本下玩家可以操控角色,做各种可爱的披萨哦。内容新颖玩法出众,不断推陈出新新的玩法,米加小镇的捏脸也让人爱不释手...
8.9/571.2M
12备忘录是一款非常简单实用的备忘录软件,日常生活中经常有各种计划,但是如果时间隔得比较久的话就很容易忘掉,通过本工具能够将每一件事情详细的记录在备忘录上,按时...
9.2/1,529.9M
知书文学小说是一款很实用的小说阅读综合服务app。这里包含了很多的小说阅读资源,喜欢看小说的小伙伴福利来了。各种类型的小说书籍都可以在这里找到,操作简单,随时随...
10.0/1,567.6M
文件批量复制工具是一款非常好用的文件复制工具,可以为用户提供非常方便的复制文件服务,可以一次性将多个文件或文件夹复制到多个文件夹下欢迎下载体验!【文件批量复制工...
9.1/228.0M
重生末日生存手游ExtraLives:ZombieSurvivalSim是由游戏厂商MDickie打造的一款末日题材的生存冒险游戏,玩家将在充满僵尸的世界里顽强...
9.5/551.9M
数字中医是一款适合所有人的医疗健康软件,大家可以在软件中获取最符合自己身体需要的中医知识,调节身体,让自己的身体更加健康,如果对中医感兴趣,也可以下载这款软件,...