Запишите китайские буквы в текстовый файл, используя vbscript - PullRequest
3 голосов
/ 10 февраля 2010

Я пытаюсь записать некоторые китайские иероглифы в текстовый файл, используя

Set myFSO = CreateObject("Scripting.FileSystemObject")
Set outputFile = myFSO.OpenTextFile(getOutputName(Argument, getMsiFileName(Wscript.Arguments)), forWriting, True)
outputFile.WriteLine(s) 

Переменная s содержит китайский символ, который я прочитал из другого файла. Я отображаю значение s и правильно вижу s на экране. Однако по какой-то причине скрипт перестает работать после outputFile.WriteLine(s) без возврата сообщения об ошибке.

Я что-то упустил?

Ответы [ 3 ]

4 голосов
/ 10 февраля 2010

Может быть, это как-то связано с кодировкой символов. Попробуйте напрямую указать формат Unicode для файла в последнем параметре метода OpenTextFile:

Const Unicode = -1
Set outputFile = myFSO.OpenTextFile(getOutputName(Argument, getMsiFileName(Wscript.Arguments)), forWriting, True, Unicode)

Также вам необходимо закрыть файл после записи в него:

outputFile.Close

Если это не помогает, попробуйте обработать ошибку, как AnthonyWJones предложил .

1 голос
/ 10 февраля 2010

Попробуйте это: -

MsgBox "Writing Line"
On Error Resume Next
outputFile.WriteLine s '' # Removed ( ) that shouldn't be there.
MsgBox "Err " & Err.Number & ": " & Err.Description
On Error GoTo 0

Что вы получаете?

0 голосов
/ 13 июня 2017

Ситуация изменилась в выигрышных версиях.Это работает на Win10:

Set outputfile = myFSO.CreateTextFile(filename,True,True)

3-й аргумент: bool true / false для unicode / ascii 2 .Удивительно, но при использовании myFSO.OpenTextFile аргумент int равен 1 (не -1) для юникода 1 .

Документация:

https://msdn.microsoft.com/en-us/library/aa265018(v=vs.60).aspx

https://msdn.microsoft.com/en-us/library/aa265347(v=vs.60).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...