4

I have a folder full of sub folders and files which are named using Hebrew encoding (Windows XP - Windows-1255). I now use Windows 7 and I want to convert all file names into UTF (Native Windows 7 which supports Hebrew characters).

Is there a tool to do so automatically?

Pay attention, I'm not after converting the internals of the file, only its file name.

Thanks!

13
  • What file system are they stored on? As far as I know, both FAT32 (LFN) and NTFS enforce Unicode, so having filenames stored in another encoding just should not happen. Aug 25, 2011 at 7:39
  • NTFS. ON XP they don't enforce the use the default Encoding set on the control panel.
    – Royi
    Aug 26, 2011 at 6:48
  • @Royi are you still around, and is your question still relevant for you? Feb 2, 2017 at 2:45
  • @YisroelTech, Yea, a solution will always be great. Thank You.
    – Royi
    Feb 2, 2017 at 7:32
  • @Royi is it music files filenames and properties being displayed as Gibberish characters? Something like à.ç.ååééñ Feb 2, 2017 at 7:38

2 Answers 2

2

Background

What is needed to be done to fix this is to find some way to automatically know each of these Gibberish characters which Hebrew character they were before being getting that way.

I compiled to such lists of characters. I've seen both kinds of corruptions, sometimes it was using one set and sometimes the other. Here are both sets (and here it is pasted in separate rows, which is needed for what we 'll be doing: Set 1 and Set 2):

  1. à=א á=ב â=ג ã=ד ä=ה å=ו æ=ז ç=ח è=ט é=י ê=ך ë=כ ì=ל í=ם î=מ ï=ן ð=נ ñ=ס ò=ע ó=ף ô=פ õ=ץ ö=צ ÷=ק ø=ר ù=ש ú=ת ‚=ג „=ד ‡=א ˆ=צ ‰=ה ˜=ק ¯=ר Á=ח Â=ו È=י Ê=ז Ë=ט Ì=ם Í=ך Î=כ Ï=ל Ò=ס Ó=מ Ô=ן Ù=פ Ú=ע Û=ף Æ=. ¨=, ß=' ¢="
  2. Ç=א ü=ב é=ג â=ד ä=ה à=ו å=ז ç=ח ê=ט ë=י è=ך ï=כ î=ל ì=ם Ä=מ Å=ן É=נ æ=ס Æ=ע ô=ף ö=פ ò=ץ û=צ ù=ק ÿ=ר Ö=ש Ü=ת

Got it Fixed!

To actually rename files and folders, I figured out an easy way to got this done using Bulk Rename Utility

  1. Open the programs and browse to the folder containing all the files with this kind of names. enter image description here
  2. In the bottom of the interface, in the Special section, click on Character Translations
  3. In the dialog that opens paste the whole list of the charachter set your files are displayed in from the Pastbin link above, and click OK
    enter image description here
  4. In the Filters section, place a checkmark at Subfolders if you want to do more then one folder at a time.
  5. Select all files and folder in the list (you should see the name it'll become after renaming it in the 2nd coulmn) and click Rename. And now all names should be displyed in Hebrew! enter image description here
0
1

Windows stores file names on disk in UTF-16 (two-byte code units, variable-length) encoding. This applies to FAT, FAT32, NTFS and exFAT.

It's unlike Linux/FreeBSD where filesystems have one-byte encoding, and it can be Windows-1255, UTF-8, ISO-8859-* etc.

UTF-16 is converted to ANSI (one-byte encoding) by Windows for some old non-Unicode software which is using old system calls like FindFirstFileA(), FindNextFileA() instead of new system calls FindFirstFileW(), FindNextFileW().

So all you need on Windows is to change "language for non-Unicode programs" setting in Control Panel / Regional and Language Settings. On-disk data is not affected.

3
  • UCS-2 is dead and not even a Unicode encoding.
    – Joey
    Nov 19, 2012 at 7:18
  • 1
    According to msdn.microsoft.com/en-us/library/windows/desktop/… FAT and FAT32 use a system-specific encoding. NTFS and exFAT both use UTF-16. Aug 18, 2015 at 17:18
  • FAT and FAT32 use UTF-16 in filenames as well. UTF-16 filenames are stored in LFNs (long filename records) and OEM-encoded filenames (i.e. converted from UTF-16 to single byte encoding using OEM code page, which you call system-specific encoding) are stored in SFNs (short filename records). DOS used only OEM encoding, and supported only SFNs, thus 8.3 filename limit. Sep 24, 2015 at 12:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .