Windows 所以现在我使用@Sybren的解决方案。这里有一个新的答案,可以让这个解决方案在powershell中变得很方便(不需要将所有git/usr/bin放在路径中,这对我来说太混乱了)
将此添加到您的Windows 所以现在我使用@Sybren的解决方案。这里有一个新的答案,可以让这个解决方案在powershell中变得很方便(不需要将所有git/usr/bin放在路径中,这对我来说太混乱了),windows,encoding,Windows,Encoding,将此添加到您的配置文件中。ps1: $global:gitbin = 'C:\Program Files\Git\usr\bin' Set-Alias file.exe $gitbin\file.exe 并像这样使用:file.exe——mime编码*。您必须在命令中包含.exe,PS alias才能工作 但如果您不自定义PowerShell profile.ps1,我建议您从我的开始: 并将其保存到~\Documents\WindowsPowerShell。在没有git的计算机上使用它是安全
配置文件中。ps1
:
$global:gitbin = 'C:\Program Files\Git\usr\bin'
Set-Alias file.exe $gitbin\file.exe
并像这样使用:file.exe——mime编码*
。您必须在命令中包含.exe,PS alias才能工作
但如果您不自定义PowerShell profile.ps1,我建议您从我的开始:
并将其保存到~\Documents\WindowsPowerShell
。在没有git的计算机上使用它是安全的,但是当找不到git时会写警告
命令中的.exe也是我如何使用powershell中的
C:\WINDOWS\system32\where.exe
;以及许多其他被powershell“默认隐藏”的OS CLI命令,*shrug*此处的一些C代码用于可靠的ascii、bom和utf8检测:
仅ASCII、UTF-8和使用BOM的编码(UTF-7带BOM,UTF-8带BOM,
UTF-16和UTF-32)有可靠的算法来获取文档的编码。
对于所有其他编码,您必须信任基于统计的启发式
编辑:
来自的C#答案的powershell版本:。仅适用于签名(BOM)
一个简单的解决方案可能是在Firefox中打开文件
file */*
对于所有子目录中的文件
文件编码检查器是一个GUI工具,允许您验证一个或多个文件的文本编码。该工具可以显示所有选定文件的编码,也可以仅显示没有指定编码的文件
文件编码检查器需要.NET 4或更高版本才能运行。是否正在寻找Node.js/npm解决方案?尝试: 用法 例子 获取当前目录中所有文件的编码:
encoding-checker
encoding-checker -p "*.md"
返回当前目录中所有md
文件的编码:
encoding-checker
encoding-checker -p "*.md"
获取当前目录及其子文件夹中所有文件的编码(对于大型文件夹将花费相当长的时间;似乎没有响应):
有关更多示例,请参阅或官方。对分析多个文件非常有帮助即使文件非常大(如您所料),也可以立即回答。适用于当前Windows 10。无法确定exe文件在该页面上的位置。链接是否过时?@MarkDeven我已在中添加了exe的路径answer@Alex,我不使用Win-8。在执行google搜索时,我找到了以下链接:。我希望你能找到它,因为我向你保证,它还在。谢谢,但在Windows8.1上绝对没有叫记事本的应用。在搜索中输入记事本时,“编辑器”出现。而且这种方法没有“赋予”下拉菜单,也没有菜单。这种方法不适用于太大而无法打开记事本的文件。而且达到这个极限的速度比记事本++等其他编辑器快得多。我的Windows 8.1确实有记事本。可能在%windir%\system32\notepad.exe中查找?notepad存在于Windows 8和Windows 10中。至少从Windows 3开始,所有版本的Windows都安装了notepad。请注意,您可能需要git 2.x版本,我的文件中没有git 1.9.5版本的notepad,它显示“二进制”:(令人难以置信的是,必须恢复到命令行进行基本操作,现在是2017年,但看起来还可以。比如说,你也可以在cygwin中使用
文件命令。任何用于Windows的POSIX工具集都应该有文件。如果你安装了git for Windows,它包括git BASH(BASH emulator),这又包括'file'命令。刚刚使用了它,它就可以工作了。下一个答案中也提到了它……poshcode上有许多不同的Get FileEncoding
。我甚至回顾了python和nodejs中的punycode,但是这个小版本在我的使用中达到了80/20(更像99/1)。如果您正在托管其他人的文件,我建议您使用Syben's answer()中的file
命令或另一个生产质量unicode解码器。应该补充的是,此方法仅在存在BOM时有效…这并不总是正确的case@Yepeekai最后一行是default
编码(当没有BOM时)。对于XML、JSON和JavaScript,默认值为UTF8,但您的里程数可能会有所不同。@yzorg:但这是一种死脑筋的方法。您只是在对用户撒谎。至少大多数解析器都会做出有根据的猜测。如果您猜不到,只需抛出一个错误,告诉他们使用代码需要BOM即可(然后使用另一个更智能的工具,因为已经有很多工具存在)。@EdS.当然,但似乎不可能确定。我是运行此代码的用户,因此它针对我的用例进行了优化(git挂钩,或其他编码破坏devops工具的场景).Nice但当我尝试使用Visual Studio打开文件时,它总是在关联的文本编辑器中打开文件(对于这种文件扩展名,使用记事本+).@barbara.post我认为这与您的Visual Studio设置有关。我可以访问Visual Studio中任何类型的纯文本文件。您可能已经告诉它,只要遇到具有该扩展名的文件,就转到记事本+。至少这是我的想法。不幸的是,它们不是“内置的”工具或您可以使用file
作为file.exe的别名,而不是file.exe
\_(ツ)_/“@ferrell_io TL;DR:PS基于.NET,并且.NET有文件静态类,PS有足够多的常见exe的混淆重载,我使用.exe将PS与Win-exe区分开来:dir | where Size-lt 10000
vswhere.exe git
@ferrell_io我使用where.exe
将其与PS中的where
区分开来,后者是内置的
npm install -g encoding-checker
Usage: encoding-checker [-p pattern] [-i encoding] [-v]
Options:
--help Show help [boolean]
--version Show version number [boolean]
--pattern, -p, -d [default: "*"]
--ignore-encoding, -i [default: ""]
--verbose, -v [default: false]
encoding-checker
encoding-checker -p "*.md"
encoding-checker -p "**"