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

命令行编解码工具coder.exe 2.0

对写的字符串处理函数进行了封装,提供以下功能:
    1.编码转换
    2.文件编码查看
    3.URL编解码
    4.base64编解码
    5.md5,sha1,crc32计算
    6.进制编解码 [2-36]进制,支持[文件|字符串|数字]
    以上功能均支持处理字符串和文件,可能会增加新功能
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值
2022.1.26 添加功能,数据进制编解码(2进制,10进制,16进制)
2022.11.17 进制工具扩展到 [2-36],'0'-'Z'
2022.2.22 URL编码支持选择全编码(eca)和仅编码非ansi字符(ec)

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

评分人数

    • holley: 感谢无私分享!技术 + 1
    • CrLf: 技术++技术 + 1 PB + 30
    • 523066680: 感谢分享技术 + 1
    • locoman: 无私分享,值得学习!技术 + 1
    • smss: 感谢技术 + 1

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

核心代码见附件
3

评分人数

TOP

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

回复 4# went

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

TOP

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

回复 6# zeng_xingdong


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

TOP

回复 8# newswan


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

TOP

回复 10# newswan


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

TOP

回复 12# newswan


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

TOP

回复 17# locoman


    编码判断内部还是和 -show    -action getcoder选项一样的判断方法,和文件名无关系
    ansi和unicode转换更简单了,现实中我倒是很少遇到unicode文件

TOP

本帖最后由 went 于 2021-9-15 12:07 编辑

回复 17# locoman


    我没找到unicode文件,能否上传一份?
    我转换出来的都乱码了....

TOP

已加入unicode编码, 代码页使用1200

TOP

回复 22# slimay


    确实汇编比不上c,只是个人觉得汇编比较自由没有约束

TOP

回复 24# locoman


    unicode分大小端模式,我是inter CPU,小端数据存储,所以我电脑上unicode即utf16-le,现在也只能处理小端数据

TOP

回复 24# locoman


    或者你贴个你电脑上unicode文件的网盘链接,我有时间再看下

TOP

回复 24# locoman


    1.花时间把核心代码和exe源码重构了一遍,现支持以下几种编码任意互转,智能识别源编码
        [ ANSI | UTF-8 | UTF-8_BOM | UTF-16_BE | UTF-16_LE ]
    2.我在虚拟机win7上看到记事本有unicode选项,其实就是utf-16_le编码

TOP

本帖最后由 went 于 2021-10-13 20:54 编辑

回复 28# locoman


    感谢测试,已修复内容丢失bug
    对于unicode显示问题由于不同cpu大小端不一样,暂时不准备处理,参照win10记事本中的编码显示方式
    文件编码转换,请使用'>'重定向到新文件进行保存,参照base64解码的例子

TOP

返回列表