Кодировка VBS для ä ü ö ß - PullRequest
       70

Кодировка VBS для ä ü ö ß

2 голосов
/ 03 августа 2020

Я хочу автоматически создавать подписи для Outlook. Проблема в том, что мне нужны ä ö ü ß, но код переводит их в ö ü ß.

Я пытался найти способ изменить кодировку, но мои исследования ничего не нашли.

Set Word = CreateObject("Word.Application")
Set Doc = Word.Documents.Add()

Word.Selection.TypeText "ä ö ü ß"

With Word.EmailOptions.EmailSignature
    .EmailSignatureEntriesAdd "AD Signature", Doc.Range()
    .NewMessageSignature = "AD Signature"
    .ReplyMessageSignature = "AD Signature"
End With

Doc.Saved = True
Word.Quit

1 Ответ

3 голосов
/ 03 августа 2020

Вы сохранили свой файл VBS как UTF-8.

Сохраните его в однобайтовой кодировке (Microsoft Notepad называет его ANSI, на вашем P C это, скорее всего, составляет Windows - 1252).

Notepad

Saving it as UTF-16 also works if you need Unicode characters.

The default encoding in Notepad used to be ANSI since time immemorial, but Windows 10 switched it to plain UTF-8 (without BOM ) в какой-то момент. Обычно это неплохо, но синтаксический анализатор VBScript будет продолжать использовать исходный код ANSI, когда в начале файла нет спецификации.

VBScript может обрабатывать источники Unicode, но способ сообщить ему об этом - BOM. В UTF-16 спецификация является обязательной, поэтому UTF-16 работает.

Однако VBScript не может обрабатывать источники в кодировке UTF-8, поэтому это не будет работать, даже если вы выбрали «UTF-8 с спецификацией», когда сохранение файла.

...