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

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

本帖最后由 went 于 2024-6-13 23:14 编辑

对写的字符串处理函数进行了封装,提供以下功能:
    1.编码转换
    2.文件编码查看
    3.URL编解码
    4.base64编解码
    5.md5,sha1,sha256,sha512,crc32计算
    6.进制编解码 [2-36]进制,支持[文件|字符串|数字]
    7.二维码生成
    以上功能均支持处理字符串和文件,可能会增加新功能
1.10添加功能,查看文件编码
1.11添加功能,支持管道
2.1修复对大文件进行编码转换时数据丢失问题
2.1添加功能:获取文件和字符串MD5值
10.13支持以下编码任意互转,智能转换 [ ANSI | UTF-8 | UTF-8_BOM | UTF-16_BE | UTF-16_LE | DOS | UNIX | MAC]
10.20加入SHA1和CRC32值
2022.1.26 添加功能,数据进制编解码(2进制,10进制,16进制)
2022.11.17 进制工具扩展到 [2-36],'0'-'Z'
2022.2.22 URL编码支持选择全编码(eca)和仅编码非ansi字符(ec)
2024.4.29 添加二维码生成功能(qrencode库)

使用方法:
  1. 编码解码工具 (Written By went.)
  2.   V3.0.1 2024/06/13
  3.   http://www.bathome.net/thread-57518-1-1.html
  4. coder.exe 用法:
  5.   显示帮助   /?
  6.   转换工具   -c       <auto|cp1> <cp2> -<s|f>         [ ... ]
  7.              -convert <auto|cp1> <cp2> -<string|file> [ ... ]
  8.   查看编码   -s       -a        <gc|gh>            -<s|f>             [ ... ]
  9.              -show    -action   <getcoder|gethash> -<string|file>     [ ... ]
  10.   进制工具   -r       <2...36>  <dc|ec>            -<s|f|n>           [ ... ]
  11.              -radix   <2...36>  <decode|encode>    -<string|file|num> [ ... ]
  12.   url工具    -u       -a        <dc|ec|eca>        -<s|f>             [ ... ]
  13.              -url     -action   <decode|encode>    -<string|file>     [ ... ]
  14.   base64工具 -bs64    -a        <dc|ec>            -<s|f>             [ ... ]
  15.              -base64  -action   <decode|encode>    -<string|file>     [ ... ]
  16.   二维码工具 -qr      -a        <ec>               -<s>               [ ... ]
  17.              -qrcode  -action   <encode>           -<string>          [ ... ]
  18.   备注:
  19.         1. [ ... ] 可选值 [<字符串|文件路径>|管道]
  20.         2. cp1,cp2 可选值 参见例子1
  21.         3. 大多数情况下,unicode编码即UTF-16_LE编码
  22.   例子:
  23.   coder -s -a gc -f "0.txt"
  24.          查看文件编码
  25.          [ DOS | UNIX | MAC | ANSI | UTF-8 | UTF-8_BOM | UTF-16_BE | UTF-16_LE ]
  26.   coder -s -a gh -f "coder.exe"
  27.          获取文件哈希值(MD5,SHA1,SHA256,SHA512,CRC32)
  28.   coder -c ansi utf-8 -s "你好,世界!"
  29.          字符串编码转换 ansi -> utf8 [浣犲ソ,涓栫晫!]
  30.   coder -c utf-8 ansi -f "utf8.txt"
  31.          文件编码转换 utf8 -> ansi
  32.          要生成文件请使用重定向符号 ">" ,参见16进制编解码的例子
  33.   coder -c auto ansi -f "1.txt"
  34.          文件编码转换,源编码自动识别 -> ansi
  35.   coder -r 16 ec -n 36:51uoct
  36.          36进制数字转16进制 51uoct -> 1234abcd
  37.   coder -r 10 ec -n 16:1234abcd
  38.          16进制数字转10进制 1234abcd -> 305441741
  39.   coder -r 2 ec -n 305441741
  40.          10进制数字转2进制 305441741 -> 10010001101001010101111001101
  41.   coder -r 16 ec -f "1.exe">"0.hex"
  42.          文件16进制编码
  43.   coder -r 16 dc -f "0.hex">"1.exe"
  44.          文件16进制解码
  45.   coder -u -a dc -s "%73%64%2F%E4%BD%A0%E5%A5%BD%21%2F%31%32%33"
  46.          字符串URL解码 [sd/你好!/123]
  47.   coder -bs64 -a ec -f "3.png" >"base64.txt"
  48.           文件base64编码,保存到base64.txt
  49.   coder -bs64 -a dc -f "base64.txt" >"4.png"
  50.           文件base64解码,生成4.png
  51.   coder -qr ec out-con -s "https://www.baidu.com"
  52.           字符串生成文本二维码,显示在控制台
  53.   coder -qr ec out-str -s "https://www.baidu.com"
  54.           字符串生成文本二维码
  55.   coder -qr ec out-img -s "https://www.baidu.com"
  56.           字符串生成图片二维码
  57.   使用管道输入,例子:
  58.   for %i in (*.png) do ( echo %i| coder -bs64 -a ec -f >"%i.txt" )
  59.        对当前路径下所有png文件base64进行编码,生成txt
复制代码
exe和源代码
coder_V3.0.rar
8

评分人数

    • 77七: 感谢分享技术 + 1
    • lforl: 仰望大佬!技术 + 1
    • holley: 感谢无私分享!技术 + 1
    • CrLf: 技术++PB + 30 技术 + 1
    • 523066680: 感谢分享技术 + 1

本帖最后由 娜美 于 2024-11-21 22:24 编辑

Hi, @went
请添加将base64编码转化成文件

例如这是一串base64编码,  它从原文件*.zip转化为base64码
  1. UEsDBBQAAAAIAAuydVnzVuJkEAAAAA8AAAAUACMA0MK9qM7Esb7OxLW1ICgzKS50eHR1cB8AAa/2utDmlrDlu7rmlofmnKzmlofmoaMgKDMpLnR4dHu6ZNbL+Zufrp2uBwS8XABQSwECHwAUAAAACAALsnVZ81biZBAAAAAPAAAAFABHAAAAAAAAACAAAAAAAAAA0MK9qM7Esb7OxLW1ICgzKS50eHQKACAAAAAAAAEAGADYwO3xHzzbAdjA7fEfPNsB/hz87R882wF1cB8AAa/2utDmlrDlu7rmlofmnKzmlofmoaMgKDMpLnR4dFBLBQYAAAAAAQABAIkAAABlAAAAAAA=
复制代码
现需转化还原成原文件
coder -bs64 -a dc -f base64.txt >1.zip
coder -bs64 -a dc -f base64.txt >1.rar
coder -bs64 -a dc -f base64.txt >1.7z
coder -bs64 -a dc -f base64.txt >*.*或者最好可以支持更多其它后缀名格式文件

TOP

回复  


    需要两步一次只能转换编码与格式其中一种,2选1,不能同时转换
went 发表于 2024-6-13 23:18



   哦哦 thanks

TOP

回复 80# 娜美


    需要两步
  1. coder -c auto utf-8 -f "%%a">u8.txt
  2. coder -c auto dos -f "u8.txt">u8_dos.txt
复制代码
一次只能转换编码与格式其中一种,2选1,不能同时转换

TOP

本帖最后由 娜美 于 2024-6-13 22:53 编辑

我再深入测试将78层连接文件全部统一为UTF-8/DOS,   有一些MAC Unix格式文件似乎没有转为DOS,  这可能是UltraEdit的问题
  1. for /r %%a in (*.txt) do (
  2.    echo,
  3.    coder -c auto utf-8 -f "%%a"
  4. )>%%a.tmp
复制代码

TOP

回复 78# 娜美


    已修复

TOP

本帖最后由 娜美 于 2024-6-13 16:35 编辑

回复 77# went


今天才看到楼主更新了,    测了一下,  如果是DOS/UTF-16_BE文件,  会被判断为MAC/UTF-16_BE, 其它的没有问题

这有一些简单测试文件, 请看看
https://wwm.lanzoul.com/iKgZ421plawh

另建议将获得编码值样式 DOS/UTF-16_BE 改为  UTF-16_BE/DOS 样式,  将格式放在后面。让大家灵活取分隔"_"  或 "/" 即可 ( 因为有些直接取UTF-16或UTF-8值就行 不需要获取整个字段 "UTF-16_BE" )    可以让其它获取该值脚本写得更简单, 行数更少,
之前旧脚本代码也不需要添加行数或更改, 起到承上启下作用
再加快读取文件速度
更新后的coder越来越比uchardet好用了

TOP

dos/unix/mac格式转换功能已添加,修复大文件编码bug

TOP

回复 74# 娜美

开发时未考虑大文本文件,为提高效率使用了内存映射文件方式,因此不支持较大文件获取编码,今后有时间会完善

TOP

回复 73# 娜美

有文件头的文件是直接判断文件头的

TOP

本帖最后由 娜美 于 2024-5-13 21:06 编辑

楼主,  报告一个问题, 不能检测大于2GB文件吗 ?    相同文件试用uchardet是可以,  楼主要重现此问题,  请偿试制造1个 或 多个 大于2GB大文件 或 更大的任何内容文件用于实验
  1. coder -s -a gc -f "0.txt"
  2. 文件打开失败! Error:8
  3. 文件打开失败! Error:1006
  4. 请按任意键继续. . .
复制代码

TOP

本帖最后由 娜美 于 2024-5-10 10:39 编辑

楼主有一些优化建议, 楼主开发命令行工具非常优秀

例如: 在判断编码的过程.
  1. coder.exe -s -a gc -f
复制代码
是不是还能做一些优化, 现在是需要从头到尾读一遍才能判断出是那一种编码,  
if 文件很多,  又很大情况下, 从头到尾读一遍可能需要很多时间和资源哦

if 它可以只读文本头标识的前几行, 就能马上判断出属于那一种编码吗, 这是不是一种更好优化方案? 更好,更快,更强 更省时间

但这是想法,  要实现它又是另一回事了

TOP

本帖最后由 娜美 于 2024-5-10 10:38 编辑

非常感谢@went
希望在转换编码过程中,顺便把unix  mac  dos格式也并统一解决了
例如将不同文本unix  mac  dos格式, 统一变成DOS/ASNI编码格式

变成dos/utf-8
coder -c auto dos/unix/mac==dos/utf-8 -f a.txt >b.txt

TOP

本帖最后由 小白龙 于 2023-12-10 06:54 编辑

回复 1# went


  楼主好, 能请教一个问题吗? 我用下面的代码, 判断文件编码, 但是编码的显示和Powershell有点不同, Powershell的是UTF8而code.exe输出的是UTF-8, 其它的编码显示也不一样, 能统一成powershell的叫法吗? 或者麻烦大佬, 告知一下怎样修改源代码, 我自己编译一下也可以, 多谢

$enc = & "coder.exe" -s -a gc -f "0.txt"
$textContent = Get-Content -Path "$home\desktop\a.txt" -enc $enc

powershell中的编码叫法有这些

TOP

感谢楼主无私分享!!!!!!
你好

TOP

返回列表