Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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!

share|improve this question
    
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. – grawity Aug 25 '11 at 7:39
    
NTFS. ON XP they don't enforce the use the default Encoding set on the control panel. – Drazick Aug 26 '11 at 6:48

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.

share|improve this answer
    
UCS-2 is dead and not even a Unicode encoding. – Joey Nov 19 '12 at 7:18
    
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. – Chris Adams Aug 18 '15 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. – Mikhail Kupchik Sep 24 '15 at 12:17

You must log in to answer this question.

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