论坛风格切换
正版合作和侵权请联系 sd173@foxmail.com
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 2042阅读
  • 0回复

[教程资料]一键还原中1KG_unis.bat乱码的分析 [复制链接]

上一主题 下一主题
离线pony8000
 

发帖
53391
今日发帖
最后登录
2024-11-19
只看楼主 倒序阅读 使用道具 楼主  发表于: 2013-02-28 11:53:23
一次偶然的打开,发现这个bat可以运行,但是打开是乱码,没有仔细想就发论坛求帮助了。
后来拿winhex一看,原来如此。

学习了本帖,你也会做可以运行但是打开乱码的bat文件了。

学习之前先学习一下记事本的几个编码:
ANSI,Unicode。

一下是百度的结果:
ANSI编码:
http://baike.baidu.com/view/185282.htm#sub6215666


引用


为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。
不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。
不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。
ANSI编码表示英文字符时用一个字节,表示中文用两个字节,而unicode不管表示英文字符还是中文都是用两个字节来表示。

Unicode编码:
http://baike.baidu.com/view/40801.htm


引用


天多了,大家慢慢看吧,要是看不下去,看下面的总结。


简单的说:例如英文字母,ansi就是一个字节存储,Unicode则是用2个字节存储。

再看看little-endian和big-endian

little-endian与big-endian
http://baike.baidu.com/view/2368412.htm


好下面开始教程。
如图打开记事本,记录一些数据:
看图吧,哈哈,小小宣传一下。

分别保存为记事本支持的几种类型:ANSI,Unicode,Unicode Big endian,UTF-8。


保存为ansi编码


保存为Unicode编码(默认little-endian)


保存为Unicode big-endian

    
保存为utf-8编码。


这几个文件保存到桌面。

现在拿出专业工具,


现在打开的是ansi编码的文件,大家看,一个字符用一个字节就能表示完整。
注意图上说的0x0D0A。


Unicode小头位,每个英文字符用2个字节表示。代表cpu系列为Intel的x86系列CPU。


Unicode大头位,这个符合我们的日常规律。但是cpu系列那就是Motorola的PowerPC系列CPU。

    
这个大家思考,不多做解释了。
好了,有了以上的知识,现在看看这个乱码的bat文件:



现在如何还原这个bat的庐山真面目呢?

[img]http://bbs.crsky.com/1236983883/Mon_1302/6_210844_7933c5ad864b785.png[/img]

[img]http://bbs.crsky.com/1236983883/Mon_1302/6_210844_6ae2bdd957df1b2.png[/img]  
精品软件:百度搜闪电软件园  最新软件百度搜:闪电下载吧
有问题联系 sdbeta@qq.com