Мне иногда приходится иметь дело с файлами, созданными в среде Mac, и с именами файлов, содержащими разложенные символы (выглядит как «é», но на самом деле это «e´»). Они явно не распознаются Scripting.FileSystemObject и поэтому не могут быть использованы. Мне нужно программно переименовать эти файлы, чтобы удалить разложенные символы перед дальнейшей обработкой.
Из того, что я нашел: "é (U + 00E9) - это символ, который можно разложить на эквивалентную строку базовой буквы e (U + 0065) и объединить острый акцент (U + 0301)."
Другими словами, обе строки выглядят в точности так: «é», но длина первой равна 1, а длина второй - 2. Если преобразовано, то на самом деле это выглядит как «e´».
Вот небольшой скрипт для тестирования:
(Пожалуйста, создайте эти два тестовых файла, скопировав / вставив имена)
Имя файла с составным символом (рабочий): é.txt
Имя файла с разложенным символом (не работает): é.txt
Set args = WScript.Arguments
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each Arg in Wscript.Arguments
Set objFile = FSO.GetFile(Arg)
fPath = Left(objFile.Path, Len(objFile.Path)-Len(objFile.Name))
FSO.movefile arg, fpath & "a.txt"
Set objFile = Nothing
Set FSO = Nothing
next
Файл с разложенным символом выдает ошибку «Файл не найден».
Мне удалось преобразовать строку из разложенных в составные символы, но все еще не работал при попытке переименовать реальный файл.
Я полностью застрял в этой точке, и любая помощь будет высоко оценена! Заранее спасибо.