[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 内码转换的原理?(已解决)

本帖最后由 wankoilz 于 2011-12-2 21:31 编辑

百度了半天也没查出个所以然来...
我想问内码转换的原理?
比如把GB2312的“人”字转成UTF8,是直接将前者的内码通过公式换算成UTF8的相应内码吗(公式法)?
又或者说通过“人”字的字形码之类的为中介去查Unicode表(中介查表法)?
望高人指点!
1

评分人数

    • broly: 感谢给帖子标题标注[已解决]字样PB + 2

回复 2# Demon


    感谢回复,请问知不知道具体是通过哪种“码”为中介?(始终需要一个中介吧)

TOP

本帖最后由 wankoilz 于 2011-12-1 19:10 编辑

回复 4# powerbat


感谢回复!   
那在查unicode表的时候是用什么查的呢?至少要“人”字的字形去查表吧,总不可能拿GB2312码去查unicode表啊...

TOP

本帖最后由 wankoilz 于 2011-12-2 02:26 编辑

感谢楼上,这个东西我用过的。
我想了解的不是如何用程序来实现编码转换,这个不难。
好吧,我们知道,ANSI(GB2312) 中每个字符都在UNICODE表中有唯一的一个映射,
如果说存在这样一个供内码转换的表:
1-a 2-b 3-c
4-d 5-e 6-f
...(其中数字代表ANSI码,字母代表UNICODE)
那么在知道ANSI码的时候自然可以查表得到相应的UNICODE码。
否则,我们在知道 "1"  的时候怎么能知道它对应的UNICODE码是什么呢?
电脑不是人脑,它不能像人一样在ANSI码表中“看”到“人”这个字的时候去UNICODE表中找到相应的UNICODE码。它看到的只有二进制...要实现这个过程我想是:
“人”的ANSI码 —“人”的字形码—通过“人”字形码查表得到相应的UNICODE码
不知道事实上是不是这样的,还请指点。

PS:为了将汉字在显示器或打印机上输出,把汉字按图形符号设计成点阵图,而得到的相应的点阵代码(字形码)。

TOP

本帖最后由 wankoilz 于 2011-12-2 02:25 编辑

对的,我想问的并不是内码转换的程序实现,而是转换程序在转换的过程中干了什么。
楼上说的查表是最后一步了(“人”的ANSI码 —“人”的字形码—“人”的UNICODE码
),关键是查表的时候用的是“什么东东”来查?到底是不是字形码呢... ...

TOP

感谢楼上。你确定有这么一张表吗,如果是,那我就没什么疑问了。
我主要是想知道事实上是不是这样,而不是猜测哦。
俺以前在verybat呆过,但我不是什么管理员。

TOP

回复 13# Demon


很好很详细。
我仔细读了你介绍的文章,受益匪浅,不过有个疑问:里面说chr()只支持0到255,但为什么vbs中不是呢,比如chr(-12345)

TOP

bingo,问题解决,你是个好人Demon,灰长感谢!

TOP

回复 17# powerbat


   

TOP

返回列表