标题: 命令行编解码工具coder.exe 3.0 [打印本页]
作者: went 时间: 2021-1-9 18:43 标题: 命令行编解码工具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库)
使用方法:- 编码解码工具 (Written By went.)
- V3.0.1 2024/06/13
- http://www.bathome.net/thread-57518-1-1.html
-
- coder.exe 用法:
-
- 显示帮助 /?
-
- 转换工具 -c <auto|cp1> <cp2> -<s|f> [ ... ]
- -convert <auto|cp1> <cp2> -<string|file> [ ... ]
-
- 查看编码 -s -a <gc|gh> -<s|f> [ ... ]
- -show -action <getcoder|gethash> -<string|file> [ ... ]
-
- 进制工具 -r <2...36> <dc|ec> -<s|f|n> [ ... ]
- -radix <2...36> <decode|encode> -<string|file|num> [ ... ]
-
- url工具 -u -a <dc|ec|eca> -<s|f> [ ... ]
- -url -action <decode|encode> -<string|file> [ ... ]
-
- base64工具 -bs64 -a <dc|ec> -<s|f> [ ... ]
- -base64 -action <decode|encode> -<string|file> [ ... ]
-
-
- 二维码工具 -qr -a <ec> -<s> [ ... ]
- -qrcode -action <encode> -<string> [ ... ]
-
- 备注:
- 1. [ ... ] 可选值 [<字符串|文件路径>|管道]
- 2. cp1,cp2 可选值 参见例子1
- 3. 大多数情况下,unicode编码即UTF-16_LE编码
-
- 例子:
-
- coder -s -a gc -f "0.txt"
- 查看文件编码
- [ DOS | UNIX | MAC | ANSI | UTF-8 | UTF-8_BOM | UTF-16_BE | UTF-16_LE ]
-
- coder -s -a gh -f "coder.exe"
- 获取文件哈希值(MD5,SHA1,SHA256,SHA512,CRC32)
-
- coder -c ansi utf-8 -s "你好,世界!"
- 字符串编码转换 ansi -> utf8 [浣犲ソ,涓栫晫!]
-
- coder -c utf-8 ansi -f "utf8.txt"
- 文件编码转换 utf8 -> ansi
- 要生成文件请使用重定向符号 ">" ,参见16进制编解码的例子
-
- coder -c auto ansi -f "1.txt"
- 文件编码转换,源编码自动识别 -> ansi
-
- coder -r 16 ec -n 36:51uoct
- 36进制数字转16进制 51uoct -> 1234abcd
-
- coder -r 10 ec -n 16:1234abcd
- 16进制数字转10进制 1234abcd -> 305441741
-
- coder -r 2 ec -n 305441741
- 10进制数字转2进制 305441741 -> 10010001101001010101111001101
-
- coder -r 16 ec -f "1.exe">"0.hex"
- 文件16进制编码
-
- coder -r 16 dc -f "0.hex">"1.exe"
- 文件16进制解码
-
- coder -u -a dc -s "%73%64%2F%E4%BD%A0%E5%A5%BD%21%2F%31%32%33"
- 字符串URL解码 [sd/你好!/123]
-
- coder -bs64 -a ec -f "3.png" >"base64.txt"
- 文件base64编码,保存到base64.txt
-
- coder -bs64 -a dc -f "base64.txt" >"4.png"
- 文件base64解码,生成4.png
-
- coder -qr ec out-con -s "https://www.baidu.com"
- 字符串生成文本二维码,显示在控制台
-
- coder -qr ec out-str -s "https://www.baidu.com"
- 字符串生成文本二维码
-
- coder -qr ec out-img -s "https://www.baidu.com"
- 字符串生成图片二维码
-
- 使用管道输入,例子:
-
- for %i in (*.png) do ( echo %i| coder -bs64 -a ec -f >"%i.txt" )
- 对当前路径下所有png文件base64进行编码,生成txt
复制代码
exe和源代码
coder_V3.0.rar
作者: went 时间: 2021-1-9 18:44
本帖最后由 went 于 2021-2-1 16:08 编辑
核心代码见附件
作者: netdzb 时间: 2021-1-9 22:19
回复 1# went
用汇编写的,太厉害了啊。
作者: went 时间: 2021-1-10 23:46
本帖最后由 went 于 2021-9-13 23:30 编辑
回复 4# went
当文件字节全是0-127范围内即每个最高位全是0时,文件ansi和utf8编码字节数据完全相同
为了方便其它程序处理,coder.exe把编码看成ANSI,和notepad显示有所不同
作者: luyigoog 时间: 2021-5-21 10:04
不错,学习一下 辛苦楼主了。
作者: zeng_xingdong 时间: 2021-6-18 16:50
感觉动作输入太长了 不能直接-b -a -e 啥的 并且一个base64 得输入.\coder.exe -base64 -action encoder -string 这么长。。就是有点麻烦
不过还是给楼主点赞了
作者: went 时间: 2021-6-18 19:14
本帖最后由 went 于 2021-6-18 22:30 编辑
回复 6# zeng_xingdong
谢谢建议,1楼已修改为支持单字母选项,简化参数输入操作
作者: newswan 时间: 2021-6-18 20:04
本帖最后由 newswan 于 2021-6-18 20:11 编辑
-show -action getcoder
把 -action 去掉,直接 -getcoder
比较好些
作者: went 时间: 2021-6-18 20:22
回复 8# newswan
主要是凑齐5个参数,省去一些校验参数的麻烦,我看看好不好改吧
作者: newswan 时间: 2021-6-18 20:38
回复 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 麻烦吗
作者: went 时间: 2021-6-18 21:04
回复 10# newswan
cp1和cp2是转换前后的代码页,两个参数,不能写成一个
作者: newswan 时间: 2021-6-18 22:00
回复 11# went
cp1 cp2 合一个参数,在程序内分成2个
cp1 支持 any 或者 空参数 ,程序检测编码,并转换成cp2
作者: went 时间: 2021-6-18 22:28
回复 12# newswan
可以先getcoder再根据输出进行convert,就不再重写了
作者: locoman 时间: 2021-9-14 11:45
回复 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
如此,在批处理中的应用就方便灵活多了!!
作者: locoman 时间: 2021-9-14 18:51
本帖最后由 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
祝您完美成功!!
作者: went 时间: 2021-9-14 19:04
回复 17# locoman
编码判断内部还是和 -show -action getcoder选项一样的判断方法,和文件名无关系
ansi和unicode转换更简单了,现实中我倒是很少遇到unicode文件
作者: went 时间: 2021-9-15 12:05
本帖最后由 went 于 2021-9-15 12:07 编辑
回复 17# locoman
我没找到unicode文件,能否上传一份?
我转换出来的都乱码了....
作者: locoman 时间: 2021-9-15 15:53
回复 locoman
我没找到unicode文件,能否上传一份?
我转换出来的都乱码了....
went 发表于 2021-9-15 12:05
传不上啊!仅仅4K还是传不上来。
作者: went 时间: 2021-10-11 22:15
已加入unicode编码, 代码页使用1200
作者: slimay 时间: 2021-10-12 12:43
回复 21# went
为啥不用C语言, 汇编费时又费力.
作者: went 时间: 2021-10-12 13:45
回复 22# slimay
确实汇编比不上c,只是个人觉得汇编比较自由没有约束
作者: locoman 时间: 2021-10-12 14:48
请问:新版在哪里?
下载顶楼的测试使用不行啊!
作者: went 时间: 2021-10-12 15:26
回复 24# locoman
unicode分大小端模式,我是inter CPU,小端数据存储,所以我电脑上unicode即utf16-le,现在也只能处理小端数据
作者: went 时间: 2021-10-12 15:35
回复 24# locoman
或者你贴个你电脑上unicode文件的网盘链接,我有时间再看下
作者: went 时间: 2021-10-13 02:10
回复 24# locoman
1.花时间把核心代码和exe源码重构了一遍,现支持以下几种编码任意互转,智能识别源编码
[ ANSI | UTF-8 | UTF-8_BOM | UTF-16_BE | UTF-16_LE ]
2.我在虚拟机win7上看到记事本有unicode选项,其实就是utf-16_le编码
作者: locoman 时间: 2021-10-13 16:02
本帖最后由 locoman 于 2021-10-13 16:04 编辑
回复 1# went
测试您V2.0版本测试情况:
一、文件编码查看测试——
coder -s -a gc -f "0.txt"
查看文件编码 [ ANSI | UTF-8 | UTF-8_BOM | UTF-16_BE | UTF-16_LE ]
ANSI文件返回的是:ANSI
Unicode文件返回的是:UTF-16_LE, (最好还是直接返回为Unicode!!)
二、自动转码测试——
1. 对这个使用格式有点疑惑(不知转换结果文件怎么写?例子说明是这样的: coder -c -1 ansi -f "1.txt"):
我只好这样写: coder -c -1 ansi -f "1.txt" >“2.txt”
2. 自动转码结果文件内容丢失(最后几行的内容没有了,并有乱码了)
我发了一个Unicode文本文件供您测试,Unicode文件名:ssv_Unicode.txt,下载地址如下:
https://cnyunfei.lanzouw.com/iMydYvaklda
作者: went 时间: 2021-10-13 18:44
本帖最后由 went 于 2021-10-13 20:54 编辑
回复 28# locoman
感谢测试,已修复内容丢失bug
对于unicode显示问题由于不同cpu大小端不一样,暂时不准备处理,参照win10记事本中的编码显示方式
文件编码转换,请使用'>'重定向到新文件进行保存,参照base64解码的例子
作者: locoman 时间: 2021-10-14 14:41
本帖最后由 locoman 于 2021-10-14 14:49 编辑
回复 29# went
最新这个修复有问题哟——
1. 没有帮助信息了——执行后,原先是自动出现使用例子的,现在没有了!!!!!!
2. 查看编码格式coder -s -a gc -f "ssv.txt" ,也没有返回显示值了!!!!!!!
3. coder -c -1 ansi -f转码输出也是空的!!!!!!!
作者: went 时间: 2021-10-14 17:32
回复 30# locoman
忘了测试win7兼容性,现已修复,顺便把-1参数改成了auto
作者: locoman 时间: 2021-10-15 10:14
这测试正常了。
目前,就是360见不得它,老杀它!
作者: went 时间: 2021-10-15 13:32
回复 30# locoman
装了360有没有病毒就是它说了算
作者: locoman 时间: 2021-10-20 09:54
批量提取文件DM5码
@echo off
for /r %%i in (*.mp3) do (
title %%i
(
echo "%%i"
coder -s -a gm -f "%%~i"
echo.
)>>file.txt
)
pause
作者: xp3000 时间: 2021-10-24 16:27
压缩了还是?被360干掉了- @cd "%~dp0"&@echo off&setlocal enabledelayedexpansion
- for /f "tokens=*" %%a in ('dir/s/b/ad^| findstr /i /v "\\ANSI$ \\UTF-8$ \\UTF-8_BOM$ \\UTF-16_LE$ \\UTF-16_BE$"') do (
- if %%~za EQU 0 (rd "%%a") else (pushd "%%a"&echo,进入"%%a")
- for /f "delims=" %%b in ('dir /b/a-d/oN "*.txt" "*.log" "*.htm" "*.html"') do (set fn=%%b
- for /f "delims=" %%i in ('%~dp0coder.exe -s -a gc -f "!fn!"') do (
- if not exist "%%i" (MD "%%i" & move "!fn!" "%%i") else (move "!fn!" "%%i")
- )
- )
- )
- pause
复制代码
当文件为网页时候错误
作者: went 时间: 2021-10-24 18:53
回复 33# xp3000
没有压缩,我也不知道360为什么报毒
请问是哪种网页编码获取错误
作者: xp3000 时间: 2021-10-24 21:12
移动了 1 个文件。
移动了 1 个文件。
移动了 1 个文件。
移动了 1 个文件。
移动了 1 个文件。
移动了 1 个文件。
文件打开失败! Error:2移动了 1 个文件。
文件打开失败! Error:2移动了 1 个文件。
文件打开失败! Error:2移动了 1 个文件。
文件打开失败! Error:2移动了 1 个文件。
文件打开失败! Error:2请按任意键继续. . .
html各种网页
作者: went 时间: 2021-10-24 22:22
回复 35# xp3000
错误2是文件未找到,可能是文件没有读取权限
试试移动到其它目录再操作
作者: went 时间: 2021-10-26 13:27
回复 37# xp3000
可以传到网盘吗,我试下
作者: went 时间: 2021-10-26 19:24
回复 38# xp3000
在html文件夹中执行命令 dir /b/a-d/on "*.htm" "*.html"
会把每个html文件都列出两遍,我以前都没有注意过这个命令.
原因就在此,第一遍文件已经移动了,第二遍就找不到文件,返回错误2
作者: xp3000 时间: 2021-10-26 19:31
谢谢,原来是这样
作者: went 时间: 2021-10-26 19:34
回复 40# xp3000
简单解决方式- dir /b/a-d/oN "*.txt" "*.log" "*.htm" "*.html"
复制代码
改为- dir /b/a-d/oN "*.txt" "*.log" "*.htm*"
复制代码
作者: locoman 时间: 2021-10-27 12:49
其实,扩展名往后都是模糊匹配的。
比如:dir *.xls
他会把 .xls 文件和 .xlsx 都列出来的。
作者: yyz219 时间: 2021-10-27 15:45
辛苦楼主了
作者: 5i365 时间: 2021-12-17 14:37
回复 1# went
您好, 我经常遇到有的txt文件是ansi编码, 然后用的打开有乱码的情况,
用您的工具, 怎样识别文件的编码, 然后如果不是utf-8就把ansi编码的文件转成utf-8的格式呢, 能写个示例吗? 感谢
作者: went 时间: 2021-12-17 19:42
回复 43# 5i365
可以使用auto参数自动识别源文件编码- @echo off & cd /d "%~dp0"
- mkdir utf8 2>nul
- for %%i in (*.txt) do coder -c auto utf-8 -f "%%~i" > "utf8\%%~nxi"
- pause&exit
复制代码
作者: 5i365 时间: 2021-12-17 20:15
回复 44# went
感谢大侠帮忙, 有一奇怪的情况想请教一下:
文件内容中即有英文也有中文和符号, 在很多情况下,
从ANSI转到UTF-8不会乱码,
但是UTF-8转成ANSI, 有时乱码, 有时正常, 乱码的情况占大多, 能指点一下门路吗? 困惑很久了, 感谢
作者: went 时间: 2021-12-17 20:26
回复 45# 5i365
用记事本转换正常吗?
可以发个源文本链接我测试下
作者: 5i365 时间: 2021-12-17 20:50
回复 46# went
用您刚写的批处理还没遇到问题, 因没手上也没要测试的文本文件,
我一般是用notepad2改编码会发现上面的情况, 我以后会用您的批处理多试试, 有情况定会过来反馈, 再次感谢
另外, 这个auto参数是智能识别能不能转成utf-8是吗? 能防止乱码吗?
作者: went 时间: 2021-12-17 21:07
回复 47# 5i365
auto在程序内部自动识别源文件编码,然后根据不同逻辑进行转换
防止乱码不敢保证,出现问题可以直接跟帖反馈,我会一直维护
作者: 5i365 时间: 2021-12-17 21:33
回复 48# went
大侠有个建议, 因为coder.exe文件比较小, 可以用下面的代码把它打包进bat文件, 使用时, 释放到临时文件然后就能使用, 如果加个向导执行, 那就太方便了
https://gitee.com/famik/Compressed2TXT/blob/master/README.md
作者: went 时间: 2021-12-17 21:56
回复 49# 5i365
根据这个修改就是了
http://www.bathome.net/viewthread.php?tid=41604&highlight=%C7%B6%C8%EB
作者: 5i365 时间: 2022-1-12 12:38
回复 44# went
大侠, 请能转码后能直接覆盖原文件吗?
下面这样报错
coder -c auto utf-8 -f "test.txt" > "test.txt"
作者: 5i365 时间: 2022-1-12 13:04
本帖最后由 5i365 于 2022-1-12 13:05 编辑
回复 1# went
遇到一个问题, 请求大侠指点一下, 用下面的命令, 在CMD窗口中显示的字是乱码,但是如果定向到文件, 就不是乱码:
@echo off & cd /d "%~dp0"
coder -c auto utf-8 -f "t.txt"
pause&exit
t,txt内容如下, 编码格式ANSI:
1.歌曲下载:
没伴奏的记录改
作者: went 时间: 2022-1-12 13:35
回复 51# 5i365
不支持这样操作,只能生成新文件,因为句柄会冲突
作者: went 时间: 2022-1-12 13:36
回复 52# 5i365
控制台显示字符都是按ansi格式来显示的,utf8自然会显示乱码
作者: 5i365 时间: 2022-1-12 13:45
回复 54# went
能不生成文件, 把转换的字符存到剪贴板中吗?
作者: went 时间: 2022-1-12 14:11
回复 55# 5i365 - coder -c auto utf-8 -f 0.txt|clip
复制代码
作者: 5i365 时间: 2022-1-12 14:17
回复 56# went
试了一下, 执行后, 在记事本里粘贴, 是乱码,
另外, 在支持命令行的软件上执行coder.exe的任何命令, 会直接输出 命令行使用说明的内容, 能完善一下就好了
作者: 5i365 时间: 2022-1-12 14:24
本帖最后由 5i365 于 2022-1-12 14:25 编辑
回复 56# went
大侠, 我就是卡在编码这个槛了, 好多文件, 如 txt 或 csv 文件, 事前并不知道是什么编码, 导致读取或输出时, 有乱码
现在的想法是, 处理前, 先用您的工具转成utf8, 然后再导入, 再处理, 再输出
http://www.bathome.net/viewthread.php?tid=61288
作者: h18001220676 时间: 2022-6-2 11:14
楼楼,能否把1.0版本的也发一下
作者: went 时间: 2022-6-3 12:45
回复 59# h18001220676
1.0的已经删了,不好意思
作者: hfxiang 时间: 2022-11-18 16:01
回复 1# went
2022-11-17版的coder帮助中的最后1条:- for %i in (*.png) do ( echo %i| coder -bs64 -a ec -f >"%i.txt" )
复制代码
测试失败?
改为如下方式有效:- for %i in (*.png) do (coder -bs64 -a ec -f "%~i">"%~ni.txt" )
复制代码
作者: went 时间: 2022-11-18 18:50
回复 61# hfxiang
测试正常的,请问你系统版本是多少
作者: cyb46b46 时间: 2023-3-4 19:22
coder.exe -c UTF-16_BE utf-8 -f "文件1" > "文件2"
转换后第一个字符丢失
作者: went 时间: 2023-3-6 12:09
回复 63# cyb46b46
请附上原始文本文件链接,便于测试
作者: cyb46b46 时间: 2023-3-6 18:19
回复 64# went
https://voldemort.lanzout.com/iJ3NJ0pfps2b
随便建立一个UTF-16_BE或UTF-16_LE文本转换成UTF-8都有这个问题
作者: went 时间: 2023-3-6 19:26
回复 65# cyb46b46
utf16文件要有正确的文件头才能识别,utf16_le是0xfffe,utf16_be是0xfeff
coder.exe在转换utf16文件时会自动去除前2个字节(文件头),如果没有文件头会丢失第1个字符
不知道你是什么系统?
修改后的附件下载
作者: cyb46b46 时间: 2023-3-6 20:43
回复 66# went
非常感谢指正,我明白了
带BOM的开头是FE FF和FF FE,我创建的是不带BOM开头,所以转换后缺一个字符。
作者: 小白龙 时间: 2023-4-18 18:01
回复 1# went
大佬, 这个工具的源代码能生成DLL 然后调用吗? 我用的软件支持调用dll方便很多, 先感谢
作者: CrLf 时间: 2023-7-27 23:21
感谢分享,已收录到bcn.bathome.net
作者: qinshaoye 时间: 2023-12-1 07:45
感谢楼主无私分享!!!!!!
作者: 小白龙 时间: 2023-12-10 06:44
本帖最后由 小白龙 于 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中的编码叫法有这些
作者: 娜美 时间: 2024-4-21 13:49
本帖最后由 娜美 于 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
作者: 娜美 时间: 2024-5-10 10:34
本帖最后由 娜美 于 2024-5-10 10:39 编辑
楼主有一些优化建议, 楼主开发命令行工具非常优秀
例如: 在判断编码的过程.复制代码
是不是还能做一些优化, 现在是需要从头到尾读一遍才能判断出是那一种编码,
if 文件很多, 又很大情况下, 从头到尾读一遍可能需要很多时间和资源哦
if 它可以只读文本头标识的前几行, 就能马上判断出属于那一种编码吗, 这是不是一种更好优化方案? 更好,更快,更强 更省时间
但这是想法, 要实现它又是另一回事了
作者: 娜美 时间: 2024-5-13 19:50
本帖最后由 娜美 于 2024-5-13 21:06 编辑
楼主, 报告一个问题, 不能检测大于2GB文件吗 ? 相同文件试用uchardet是可以, 楼主要重现此问题, 请偿试制造1个 或 多个 大于2GB大文件 或 更大的任何内容文件用于实验- coder -s -a gc -f "0.txt"
-
- 文件打开失败! Error:8
-
- 文件打开失败! Error:1006
-
- 请按任意键继续. . .
复制代码
作者: went 时间: 2024-5-15 12:08
回复 73# 娜美
有文件头的文件是直接判断文件头的
作者: went 时间: 2024-5-15 12:11
回复 74# 娜美
开发时未考虑大文本文件,为提高效率使用了内存映射文件方式,因此不支持较大文件获取编码,今后有时间会完善
作者: went 时间: 2024-6-11 20:02
dos/unix/mac格式转换功能已添加,修复大文件编码bug
作者: 娜美 时间: 2024-6-13 14:38
本帖最后由 娜美 于 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好用了
作者: went 时间: 2024-6-13 20:26
回复 78# 娜美
已修复
作者: 娜美 时间: 2024-6-13 22:45
本帖最后由 娜美 于 2024-6-13 22:53 编辑
我再深入测试将78层连接文件全部统一为UTF-8/DOS, 有一些MAC Unix格式文件似乎没有转为DOS, 这可能是UltraEdit的问题- for /r %%a in (*.txt) do (
- echo,
- coder -c auto utf-8 -f "%%a"
- )>%%a.tmp
复制代码
作者: went 时间: 2024-6-13 23:18
回复 80# 娜美
需要两步- coder -c auto utf-8 -f "%%a">u8.txt
- coder -c auto dos -f "u8.txt">u8_dos.txt
复制代码
一次只能转换编码与格式其中一种,2选1,不能同时转换
作者: 娜美 时间: 2024-6-14 10:28
回复
需要两步一次只能转换编码与格式其中一种,2选1,不能同时转换
went 发表于 2024-6-13 23:18
哦哦 thanks
作者: 娜美 时间: 昨天 22:22
本帖最后由 娜美 于 2024-11-21 22:24 编辑
Hi, @went
请添加将base64编码转化成文件
例如这是一串base64编码, 它从原文件*.zip转化为base64码- 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 >*.*或者最好可以支持更多其它后缀名格式文件
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |