Get encoding of a file in Windows

前端 未结 12 1897
忘了有多久
忘了有多久 2020-11-22 12:16

This isn\'t really a programming question, is there a command line or Windows tool (Windows 7) to get the current encoding of a text file? Sure I can write a little C# app b

相关标签:
12条回答
  • 2020-11-22 12:44

    Similar to the solution listed above with Notepad, you can also open the file in Visual Studio, if you're using that. In Visual Studio, you can select "File > Advanced Save Options..."

    The "Encoding:" combo box will tell you specifically which encoding is currently being used for the file. It has a lot more text encodings listed in there than Notepad does, so it's useful when dealing with various files from around the world and whatever else.

    Just like Notepad, you can also change the encoding from the list of options there, and then saving the file after hitting "OK". You can also select the encoding you want through the "Save with Encoding..." option in the Save As dialog (by clicking the arrow next to the Save button).

    0 讨论(0)
  • 2020-11-22 12:52

    Open up your file using regular old vanilla Notepad that comes with Windows.
    It will show you the encoding of the file when you click "Save As...".
    It'll look like this: enter image description here

    Whatever the default-selected encoding is, that is what your current encoding is for the file.
    If it is UTF-8, you can change it to ANSI and click save to change the encoding (or visa-versa).

    I realize there are many different types of encoding, but this was all I needed when I was informed our export files were in UTF-8 and they required ANSI. It was a onetime export, so Notepad fit the bill for me.

    FYI: From my understanding I think "Unicode" (as listed in Notepad) is a misnomer for UTF-16.
    More here on Notepad's "Unicode" option: Windows 7 - UTF-8 and Unicdoe

    0 讨论(0)
  • 2020-11-22 12:52

    Install git ( on Windows you have to use git bash console). Type:

    file *   
    

    for all files in the current directory , or

    file */*   
    

    for the files in all subdirectories

    0 讨论(0)
  • 2020-11-22 12:54

    Some C code here for reliable ascii, bom's, and utf8 detection: https://unicodebook.readthedocs.io/guess_encoding.html

    Only ASCII, UTF-8 and encodings using a BOM (UTF-7 with BOM, UTF-8 with BOM, UTF-16, and UTF-32) have reliable algorithms to get the encoding of a document. For all other encodings, you have to trust heuristics based on statistics.

    EDIT:

    A powershell version of a C# answer from: Effective way to find any file's Encoding. Only works with signatures (boms).

    # get-encoding.ps1
    param([Parameter(ValueFromPipeline=$True)] $filename)    
    begin {
      # set .net current directoy                                                                                                   
      [Environment]::CurrentDirectory = (pwd).path
    }
    process {
      $reader = [System.IO.StreamReader]::new($filename, 
        [System.Text.Encoding]::default,$true)
      $peek = $reader.Peek()
      $encoding = $reader.currentencoding
      $reader.close()
      [pscustomobject]@{Name=split-path $filename -leaf
                    BodyName=$encoding.BodyName
                    EncodingName=$encoding.EncodingName}
    }
    
    
    .\get-encoding chinese8.txt
    
    Name         BodyName EncodingName
    ----         -------- ------------
    chinese8.txt utf-8    Unicode (UTF-8)
    
    
    get-childitem -file | .\get-encoding
    
    0 讨论(0)
  • 2020-11-22 12:55

    Another tool that I found useful: https://archive.codeplex.com/?p=encodingchecker EXE can be found here

    0 讨论(0)
  • 2020-11-22 12:55

    EncodingChecker

    File Encoding Checker is a GUI tool that allows you to validate the text encoding of one or more files. The tool can display the encoding for all selected files, or only the files that do not have the encodings you specify.

    File Encoding Checker requires .NET 4 or above to run.

    0 讨论(0)
提交回复
热议问题