我有一个文件夹,里面全是使用希伯来语编码命名的子文件夹和文件(Windows XP - Windows-1255)。我现在使用 Windows 7,我想将所有文件名转换为 UTF(原生 Windows 7,支持希伯来语字符)。
是否有一个工具可以自动完成此操作?
请注意,我并不是要转换文件的内部内容,而只是要转换文件名。
谢谢!
答案1
背景
要解决这个问题,需要找到某种方法,自动知道这些乱码字符在变成这样之前是哪个希伯来语字符。
我编制了这样的字符列表。我见过两种类型的损坏,有时使用一组,有时使用另一组。以下是两个集合(这里将其粘贴在单独的行中,这是我们将要做的事情所需要的:集合 1和第 2 组):
- à=א á=ב â=ג ã=ד ä=ה å=ו æ=ז ç=ח è=ט é=י ê=ך ë=כ ì=ל í=ם î=מ ï=ן ð=נ ñ=ס ò=ע ó=ף ô=פ õ=ץ ö=צ ÷=ק ø=ר ù=ש ú=ת ‚=ג „=ד ‡=א ˆ=צ ‰=ה ˜=ק ¯=ר Á=ח Â=ו È=י Ê=ז Ë=ט Ì=ם Í=ך Î=כ Ï=ל Ò=ס Ó=מ Ô=ן Ù=פ Ú=ע Û=ף Æ=。 ¨=, ß=' ¢="
- Ç=א ü=ב é=ג â=ד ä=ה à=ו å=ז ç=ח ê=ט ë=י è=ך ï=כ î=ל ì=ם Ä=מ Å=ן É=נ æ=ס Æ=ע ô=ף ö=פ ò=ץ û=צ ù=ק ÿ=ר Ö=ש Ü=ת
已修复!
为了真正重命名文件和文件夹,我找到了一种简单的方法来完成此操作批量重命名实用程序
答案2
Windows 以 UTF-16(双字节代码单元,可变长度)编码将文件名存储在磁盘上。这适用于 FAT、FAT32、NTFS 和 exFAT。
它与 Linux/FreeBSD 不同,其中文件系统具有单字节编码,它可以是 Windows-1255、UTF-8、ISO-8859-* 等。
对于一些旧的非 Unicode 软件,Windows 将 UTF-16 转换为 ANSI(单字节编码),这些软件使用旧的系统调用(如 FindFirstFileA()、FindNextFileA())而不是新的系统调用 FindFirstFileW()、FindNextFileW()。
因此,在 Windows 上,您只需在控制面板/区域和语言设置中更改“非 Unicode 程序的语言”设置。磁盘上的数据不会受到影响。