Skip to content

dennis97519/EncodingConverter

Repository files navigation

EncodingConverter

Github All Releases Build status

Convert garbled file name encoding to UTF(16? anyway the encoding used for NTFS)

E.g. after extracting some Japanese app or game's zip you see unreadable text, because the file name are stored as Shift JIS on disk but is interpreted by Windows as some other encoding.

Tested to work on Windows where "Language for Non-Unicode Programs" is set to Chinese (Simplified, China).

So Windows actually first interpreted the Shift-JIS encoded characters as GB18030, converted it to Unicode and gave it to Qt. The program has to first convert it into GB18030 then interpret it as Shift-JIS and decode into Unicode.

The folder path input box doesn't update the tree view. It only provides input to the file choser after clicking browse.

If you are sure about the actual encoding, try changing the system encoding. The author of the archive may have another default encoding on the system that further garbles things up. I've got a zip with file names that are SJIS reinterpreted as Code Page 850, and probably stored as UTF16.

Usage

encconv

  1. Download the zip
  2. (extract and) open EncodingConverter.exe. If missing dll, run the vcredist installer in the zip.
  3. Browse to the folder with encoding problems
  4. Select the correct encoding
  5. Apply

Features I would like to add:

  • Show root folder somehow in the treeview
  • Add checkboxes to treeview so some files and folders can be skipped
  • Convert encoding of plain text files at the same time (toogle via another checkbox)

Issues I'm seeing affecting the utility of this app

  • Qt's encoding conversion is buggy
  • Qt's tree view thing is buggy and locks folders
  • Some information could still be destroyed during extraction with a wrong encoding
  • Many of the executables with the local filename encoding also have the strings in the resources section encoded the same way, and it is difficult to look for and correct that

Alternatives

  • Locale Emulator for running the executables
  • Bandizip for extracting (has options for encoding of the files within its archive explorer)