批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

编解码工具coder.exe 2.0

本帖最后由 went 于 2021-10-24 22:35 编辑

对写的字符串处理函数进行了封装,提供以下功能:
    1.编码转换
    2.文件编码查看
    3.URL编解码
    4.base64编解码
    5.md5编码
    以上功能均支持处理字符串和文件,可能会增加新功能
1.10添加功能,查看文件编码
1.11添加功能,支持管道
2.1修复对大文件进行编码转换时数据丢失问题
2.1添加功能:获取文件和字符串MD5值
10.13支持以下编码任意互转,智能转换 [ ANSI | UTF-8 | UTF-8_BOM | UTF-16_BE | UTF-16_LE ]
10.20加入SHA1和CRC32值

使用方法:
  1. 编码解码工具 2.0.1 (Written By went.)
  2. coder.exe 用法:
  3.   转换工具   -c       <auto|cp1> <cp2> -<s|f>         [ ... ]
  4.              -convert <auto|cp1> <cp2> -<string|file> [ ... ]
  5.   查看编码   -s       -a       <gc|gh>            -<s|f>         [ ... ]
  6.              -show    -action  <getcoder|gethash> -<string|file> [ ... ]
  7.   url工具    -u       -a       <dc|ec>            -<s|f>         [ ... ]
  8.              -url     -action  <decoder|encoder>  -<string|file> [ ... ]
  9.   base64工具 -bs64    -a       <dc|ec>            -<s|f>         [ ... ]
  10.              -base64  -action  <decoder|encoder>  -<string|file> [ ... ]
  11.   备注:
  12.         1. [ ... ] 可选值 [<字符串|文件路径>|管道]
  13.         2. cp1,cp2 可选值 参见例子1
  14.   例子:
  15.   coder -s -a gc -f "0.txt"
  16.          查看文件编码 [ ANSI | UTF-8 | UTF-8_BOM | UTF-16_BE | UTF-16_LE ]
  17.   coder -s -a gh -f "coder.exe"
  18.          获取文件哈希值(MD5,SHA1,CRC32)
  19.   coder -c ansi utf-8 -s "你好,世界!"
  20.          字符串编码转换 ansi -> utf8 [浣犲ソ,涓栫晫!]
  21.   coder -c utf-8 ansi -f "utf8.txt"
  22.          文件编码转换 utf8 -> ansi
  23.          要生成文件请使用重定向符号 ">" ,参见base64例子
  24.   coder -c auto ansi -f "1.txt"
  25.          文件编码转换,源编码自动识别 -> ansi
  26.   coder -u -a dc -s "%73%64%2F%E4%BD%A0%E5%A5%BD%21%2F%31%32%33"
  27.          字符串URL解码 [sd/你好!/123]
  28.   coder -bs64 -a ec -f "3.png" >"base64.txt"
  29.           文件base64编码,保存到base64.txt
  30.   coder -bs64 -a dc -f "base64.txt" >"4.png"
  31.           文件base64解码,生成4.png
  32.   使用管道输入,例子:
  33.   for %i in (*.png) do ( echo %i| coder -bs64 -a ec -f >"%i.txt" )
  34.        对当前路径下所有png文件base64进行编码,生成txt
复制代码
exe和源代码
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
3

评分人数

    • locoman: 无私分享,值得学习!技术 + 1
    • smss: 感谢技术 + 1
    • newswan: 感谢分享技术 + 1

本帖最后由 went 于 2021-2-1 16:08 编辑

核心代码见附件
3

评分人数

TOP

回复 1# went

用汇编写的,太厉害了啊。

TOP

本帖最后由 went 于 2021-9-13 23:30 编辑

回复 4# went

当文件字节全是0-127范围内即每个最高位全是0时,文件ansi和utf8编码字节数据完全相同
为了方便其它程序处理,coder.exe把编码看成ANSI,和notepad显示有所不同

TOP

不错,学习一下 辛苦楼主了。

TOP

感觉动作输入太长了 不能直接-b -a -e 啥的 并且一个base64 得输入.\coder.exe -base64 -action encoder -string  这么长。。就是有点麻烦

不过还是给楼主点赞了

TOP

本帖最后由 went 于 2021-6-18 22:30 编辑

回复 6# zeng_xingdong


    谢谢建议,1楼已修改为支持单字母选项,简化参数输入操作

TOP

本帖最后由 newswan 于 2021-6-18 20:11 编辑

-show -action getcoder
把  -action 去掉,直接 -getcoder
比较好些

TOP

回复 8# newswan


    主要是凑齐5个参数,省去一些校验参数的麻烦,我看看好不好改吧

TOP

回复 9# went


              转换工具   -convert <cp1> <cp2> -<string|file> [<str|filePath>|管道]
          查看编码   -show    -action <getcoder|getmd5> -<file|string> [<str|filePath>|管道]
          url工具    -url     -action <decoder|encoder> -<string|file> [<str|filePath>|管道]
          base64工具 -base64  -action <decoder|encoder> -<string|file> [<str|filePath>|管道]

如果为了参数整齐 <cp1> <cp2> 合一 cp1-cp2 cp1_cp2  麻烦吗

TOP

回复 10# newswan


    cp1和cp2是转换前后的代码页,两个参数,不能写成一个

TOP

回复 11# went


    cp1 cp2 合一个参数,在程序内分成2个
    cp1 支持 any 或者 空参数  ,程序检测编码,并转换成cp2

TOP

回复 12# newswan


    可以先getcoder再根据输出进行convert,就不再重写了

TOP

回复 1# went

感谢楼主无私分享!!

如果,能实现“自动转码”功能,真的不失为一个很好的批处理工具!!!

为什么要说“自动转码”呢?

主要是现如今的系统线已经很长很乱了:32位、64位、甚至在一些环境中WIN XP都还在使用,WIN7和WIN10的过渡拉锯战仍然有很长的路。
所以,文件的编码问题也较为混乱了,往往根本无法预知某系统使用的哪种文件编码?也无法预知会生成什么样的文件编码?
但是,我最终想要的文件编码类型应该预知的。

所以,对源文件的编码格式,最好在内部进行自动判断,不需要我去确定,我只需要指定转换输出文件的编码格式即可!!

如:对一个未知编码的格式文件xyz.txt处理——
转ANSI
coder -c xyz.txt ANSI abc.txt

转UTF-8
coder -c xyz.txt UTF-8 abc.txt

转UTF-16_BE
coder -c xyz.txt UTF-16_BE abc.txt

如此,在批处理中的应用就方便灵活多了!!

TOP

本帖最后由 locoman 于 2021-9-14 18:52 编辑
回复  locoman


    14楼是不是你需要的
went 发表于 2021-9-14 14:06


基本上是那个意思!

coder -c -1 0 -f utf8.txt>ansi.txt
添加了cp1自动检测编码的参数(-1),仅对utf8和ansi文件有效

但是,对14楼的仍有改进的必须:
1.  既然是自动编码检测了,就应该全面自动检测,不能仅仅只有两种,这样别人是不好判断的!
2. 其实,Unicode to ANSI  的需求更多,主要是当前32位与64位混用的时代,很多32位的只能使用 ANSI ,就更需要Unicode 与 ANSI 的互转。
3. 单看14楼的格式,不知道您是否采取的是用特定文件名来作判断的?这样至少不能自定义文件名了!还是能让别人自定义文件名才好,如下:
coder -c -1 0 -f xyz.txt ANSI abc.txt
coder -c -1 0 -f xyz.txt UTF-8 abc.txt
coder -c -1 0 -f xyz.txt UTF-16_BE abc.txt
coder -c -1 0 -f xyz.txt Unicode abc.txt

祝您完美成功!!

TOP

返回列表