Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.