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中打开文件

  • 将文件拖放到firefox中
  • 在页面上单击鼠标右键
  • 选择“查看页面信息”
  • 文本编码将出现在“页面信息”窗口中

    注意:如果文件不是txt格式,请将其重命名为txt,然后重试

    另外,更多信息请参阅文章。

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

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

    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
    vs
    where.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 "**"