这不是一个真正的编程问题,是否有命令行或Windows工具(Windows 7)来获取文本文件的当前编码?当然,我可以写一个小c#应用程序,但我想知道是否有一些已经内置?


当前回答

EncodingChecker

文件编码检查器是一个GUI工具,允许您验证一个或多个文件的文本编码。该工具可以显示所有选定文件的编码,或者仅显示不具有指定编码的文件的编码。

文件编码检查程序需要。net 4或更高版本才能运行。

其他回答

使用Windows自带的普通记事本打开文件。 当你点击“另存为…”时,它会显示文件的编码。 它看起来是这样的:

无论默认选择的编码是什么,这就是文件的当前编码。 如果它是UTF-8,您可以将其更改为ANSI并单击保存以更改编码(或visa-反之)。

我知道有许多不同类型的编码,但当我被告知我们的导出文件是UTF-8,他们需要ANSI时,这就是我所需要的。这是一个一次性的输出,所以记事本适合我。

供参考:根据我的理解,我认为“Unicode”(如在记事本中列出的)是UTF-16的虚名。 更多关于记事本的“Unicode”选项:Windows 7 - UTF-8和Unicdoe

如果你的Windows机器上有“git”或“Cygwin”,然后转到文件所在的文件夹并执行命令:

file *

这将为您提供该文件夹中所有文件的编码细节。

我发现另一个有用的工具是:https://archive.codeplex.com/?p=encodingchecker EXE可以在这里找到

安装git(在Windows上你必须使用git bash控制台)。类型:

file --mime-encoding *   

对于当前目录中的所有文件,或

file --mime-encoding */*   

对于所有子目录中的文件

我写了第4个答案(在写作的时候)。但最近我在所有电脑上都安装了git,所以现在我使用@Sybren的解决方案。这是一个新的答案,使解决方案方便从powershell(没有把所有的git/usr/bin在PATH,这是太多的混乱对我来说)。

将此添加到您的配置文件中。

$global:gitbin = 'C:\Program Files\Git\usr\bin'
Set-Alias file.exe $gitbin\file.exe

并使用类似:file.exe——mime-encoding *。必须在命令中包含.exe,才能使PS别名正常工作。

但如果您不自定义PowerShell配置文件。ps1我建议你从我的开始:https://gist.github.com/yzorg/8215221/8e38fd722a3dfc526bbe4668d1f3b08eb7c08be0 并保存到~\Documents\WindowsPowerShell。在没有git的计算机上使用它是安全的,但如果找不到git,则会编写警告。

命令中的.exe也是我如何使用powershell中的C:\WINDOWS\system32\where.exe;和许多其他操作系统CLI命令是“默认隐藏”的powershell, *耸肩*。