![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 19:16 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [原创]GBK & UTF8 编码互转脚本 (CMD+GAWK) |
| 可打印版本 18,792 / 31 |
| 第1楼 无奈何 | 发表于 2006-11-30 00:31 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
[原创]GBK & UTF8 编码互转脚本 (CMD+GAWK) GBK & UTF8 编码互转脚本 (CMD+GAWK) 因为我的实际应用中需要 UTF8 到 GBK 的编码转换,所以就用 GAWK 写了一个,事实上在我早先的帖子中已经在使用。这次整理了一下,已支持编码的双向转换,自己制作了完整的 GBK 到 UTF8 的转码对照表,制作中发现系统的转码结果和 iconv 的转码结果有不少差异,对照表采用的是前者。 本脚本支持管道和文件的编码转换,结果输出到屏幕。现在参数支持不多,但是有参数完整性的检测功能,可以完成多参数的无序调用。采用了新的脚本释放方法,源文件有改动时会自动更新脚本。还有错误消息和依赖文件完整性检查机制。希望这些小技巧对大家编写批处理有所帮助。 GAWK 下载链接:http://www.klabaster.com/progs/gawk32.zip 脚本及转码表见附件。
[ Last edited by 无奈何 on 2006-11-30 at 02:04 PM ] 附件 gbk2utf8.zip (102.8 KiB) |
|
| 第2楼 ccwan | 发表于 2006-11-30 00:38 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
强贴留名。(electronixtar兄莫怪侵权^_^)
无奈何兄是我永不能翻越的高山啊! |
|
| 第3楼 zh159 | 发表于 2006-11-30 00:42 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
以前我在网上找到一个 GBK-Unicode 的编码对照表(7k多对照字符),自己用批处理计算生成了 GBK-UTF-8 编码对照表,只要用查字典的 for 方式,就可以瞬间提取 UTF-8 编码,先找找看...
|
|
| 第4楼 vkill | 发表于 2006-11-30 00:46 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
哎,gawk那段还是看不懂,学习中
|
|
| 第5楼 redtek | 发表于 2006-11-30 00:48 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
太精彩了~~~
|
|
| 第6楼 无奈何 | 发表于 2006-11-30 00:51 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
ccwan 兄过谦了,我也不是高手。
zxcv 兄,7k 多的是 GB2312 的,完整 GBK 有 2w 多,共 22046 个码位。 |
|
| 第7楼 无奈何 | 发表于 2006-11-30 00:58 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
RE vkill
GAWK 支持多字节编码,这种处理方法的好处是只要编写匹配编码的正则表达式就可通用于其他其他编码的转换。应该说也是比较好理解的,唯一做的就是获取字符长度并截取。 |
|
| 第8楼 zh159 | 发表于 2006-11-30 01:52 |
| 金牌会员 发帖 1,467 积分 3,687 | |
Originally posted by 无奈何 at 2006-11-29 12:51: 确实如此,看来得找一个完整 GBK 的算一个 GBK-UTF-8 对照表了 |
|
| 第9楼 zh159 | 发表于 2006-11-30 02:21 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
已经获得了完整的 gbk2utf8 编码库
![]() 发现这个gbk2utf8编码库和我转换的 GB 版有很多数据不同: 例: gbk2utf8 A1A42C C2B7 红色部分是gbk的识别 gb2utf8 a1a4 E383BB 好像这个gbk2utf8编码库GB部分的部分编码对照有误,超出库GB部分的编码暂时未发现错误 |
|
| 第10楼 无奈何 | 发表于 2006-11-30 03:45 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
RE zxcv
我的那个中间加了分隔符 “,” 也就是 0X2C 。 给你一段我写的生成 GBK 所有字符的 AWK 脚本。自己另存为 UTF8 就可以获得两个编码的对照表了。 [ Last edited by 无奈何 on 2006-11-30 at 03:50 AM ] |
|
| 第11楼 zh159 | 发表于 2006-11-30 04:23 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
GB部分的编码只剩下面的找不到对应的
A8BB C991 先试试了^_^ |
|
| 第12楼 electronixtar | 发表于 2006-11-30 07:01 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
没看懂,顶一个先
|
|
| 第13楼 HUNRYBECKY | 发表于 2006-12-03 02:56 |
| 银牌会员 发帖 442 积分 1,179 | |
|
太高深了。学习中。
|
|
| 第14楼 tao0610 | 发表于 2006-12-03 02:59 |
| 高级用户 发帖 218 积分 579 | |
|
好像是C++
|
|
| 第15楼 redtek | 发表于 2006-12-03 09:31 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
GAWK真是强大啊~~~
|
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |