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

[文本处理] gawk 支持哪些编码?

本帖最后由 娜美 于 2023-8-15 17:14 编辑

gawk 支持有那些编码

可以让gawk对UTF16编码文本直接处理吗

例,偿试不行
  1. gawk --locale=ZH_CN.UTF16 "/A+/"  1
复制代码
UTF16测验文本
  https://wwkt.lanzoul.com/i0yCB15dwcti

gawk5.1 版本
https://wwkt.lanzoul.com/iOZVa15gopbi

回复 21# 娜美

只是看起来那样,实际又没变,不使用cmd的输出重定向应该就行了吧
实在不行或者就是想用gawk,那就用cygwin或者mingw的gawk

TOP

回复 20# Five66


  那怎么解嘛  中文是占了2个字节,   ,要等gawk升级, 还是只能只样了

TOP

回复 19# Five66

还是说一下吧,图里用的就是1楼的gawk和txt
第一个命令,能读取并输出,只不过连utf16的bom也一起输出了
第二个命令,用了--locale选项,也能读取并输出,跟第一个命令相比,输出时连utf16的bom也没了
至于那些空格,就是utf16那些00字节,大概是gawk输出也是utf16,由于cmd编码默认ansi,输出时的utf16被cmd当成ansi了,然后00字节显示成空了

TOP

回复 18# 娜美

也不能说不支持,总之看下面的图

TOP

gawk是支持utf16的吧,也许是你文件路径问题
Five66 发表于 2023-8-15 16:35



gawk不支持utf16编码文件 !

TOP

本帖最后由 娜美 于 2023-8-15 17:18 编辑

回复 13# Five66

试了不行, 但没任何错误提示,   但输出为空

这个是gawk5.1 版本, 你试试看
   https://wwkt.lanzoul.com/iOZVa15gopbi

TOP

回复  娜美


试试这样:建议把文件链接更新到顶楼方便大家查看
Batcher 发表于 2023-8-15 16:49


顶楼已添加测验文件链接

我想弄明白gawk是否支持UTF16编码文本

   因为gawk5.1版本有一个区域编码提示



  1. gawk --h
  2. GNU Awk 5.1.0, API: 4.1 (GNU MPFR 4.1.0, GNU MP 6.2.0) (mingw-w64)Copyright (C) 1989, 1991-2020 Free Software Foundation.
  3. -Z locale-name          --locale=locale-name
复制代码

TOP

回复 3# 娜美


试试这样:
  1. type 1.txt | gawk "/A+/" > 2.txt
复制代码
建议把文件链接更新到顶楼方便大家查看
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

gawk是支持utf16的吧,也许是你文件路径问题

TOP

这个呢
--locale=zh_CN.65001

TOP

回复 10# Five66

都试了,
  1. "gawk": bad locale name specified by the option '--locale': zh_CN.Unicode
  2. "gawk": bad locale name specified by the option '--locale': zh_CN.UNICODE
  3. "gawk": bad locale name specified by the option '--locale': zh_CN.unicode
  4. "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16
  5. "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16
  6. "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16
  7. "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16LE
  8. "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16LE
  9. "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16LE
  10. "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16le
  11. "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16le
  12. "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16le
  13. "gawk": bad locale name specified by the option '--locale': zh_CN.utf-16Le
  14. "gawk": bad locale name specified by the option '--locale': zh_CN.UTF-16Le
  15. "gawk": bad locale name specified by the option '--locale': zh_CN.Utf-16Le
  16. 请按任意键继续. . .
复制代码

TOP

回复 9# Five66

gawk似乎支持区域编码的

其中有一行提示
  1. gawk --h
  2. -Z locale-name          --locale=locale-name
复制代码

TOP

回复 8# 娜美

试试
--locale=zh_CN.Unicode
--locale=zh_CN.UNICODE
--locale=zh_CN.unicode
--locale=zh_CN.utf-16
--locale=zh_CN.UTF-16
--locale=zh_CN.Utf-16
--locale=zh_CN.utf-16LE
--locale=zh_CN.UTF-16LE
--locale=zh_CN.Utf-16LE
--locale=zh_CN.utf-16le
--locale=zh_CN.UTF-16le
--locale=zh_CN.Utf-16le
--locale=zh_CN.utf-16Le
--locale=zh_CN.UTF-16Le
--locale=zh_CN.Utf-16Le

TOP

那就试试过管道或者切换代码页
  1. type 1.txt|gawk "/BBBBBBBBBF/"
复制代码
  1. chcp 65001
  2. gawk "/BBBBBBBBBF/" 1.txt
复制代码

TOP

返回列表