首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >自动检测字符编码的findstr或grep (UTF-16)

自动检测字符编码的findstr或grep (UTF-16)
EN

Stack Overflow用户
提问于 2009-01-02 21:28:17
回答 7查看 16.7K关注 0票数 13

我想这么做:

代码语言:javascript
复制
 findstr /s /c:some-symbol *

或相当于grep的

代码语言:javascript
复制
 grep -R some-symbol *

但我需要这个实用程序来自动检测UTF-16 (和朋友)中编码的文件,并对它们进行适当的搜索。我的文件甚至有字节排序标记FFEE在他们中,所以我甚至不寻找英雄自动检测。

有什么建议吗?

我指的是Windows和XP。

EN

回答 7

Stack Overflow用户

发布于 2012-09-04 15:58:25

解决办法是将您的UTF-16转换为ASCII或ANSI。

代码语言:javascript
复制
TYPE UTF-16.txt > ASCII.txt

然后你可以使用FINDSTR。

代码语言:javascript
复制
FINDSTR object ASCII.txt
票数 5
EN

Stack Overflow用户

发布于 2009-01-04 13:55:54

谢谢你的建议。我指的是Windows和XP。

我还发现了这个解决方法,使用了免费的strings.exe

代码语言:javascript
复制
C:\> strings -s -b dir_tree_to_search | grep regexp 

Strings.exe提取它找到的所有字符串(从二进制文件中提取,但对文本文件也很好),并在每个结果前面加上一个文件名和冒号,所以在regexp中要考虑到这一点(或者使用裁剪或管道中的另一个步骤)。-s使它进行递归提取,而-b只是取消横幅消息。

最终,我仍然对旗舰搜索工具Gnu、grepfindstr没有本地处理Unicode字符编码感到惊讶。

票数 4
EN

Stack Overflow用户

发布于 2011-07-21 20:31:56

在Windows上,您也可以使用find.exe。

代码语言:javascript
复制
find /i /n "YourSearchString" *.*

唯一的问题是这个打印文件名后跟着匹配。你可以通过管道过滤到findstr。

代码语言:javascript
复制
find /i /n "YourSearchString" *.* | findstr /i "YourSearchString"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/408079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档