2010-02-09 3 views
2

Je suis en train d'écrire des caractères chinois dans un fichier texte à l'aideEcrire à caractères chinois un fichier texte à l'aide vbscript

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

La s variable contient un caractère chinois que je lis de l'autre fichier. Je fais écho s valeur et je peux voir le s correctement sur l'écran. Toutefois, pour une raison quelconque, le script s'arrête après outputFile.WriteLine(s) sans renvoyer de message d'erreur.

Ai-je raté quelque chose?

Répondre

3

Peut-être que cela a quelque chose à voir avec l'encodage de caractères. Essayez d'indiquer directement le format Unicode pour le fichier dans le dernier paramètre de la méthode OpenTextFile:

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

, vous devez également fermer le fichier après avoir écrit lui:

outputFile.Close 

Si cela ne aide, essayez la gestion des erreurs comme AnthonyWJones suggested.

+0

+1, Belle prise, j'ai raté ce dernier paramètre et j'ai été distrait par ce qui est toujours un comportement explicable. – AnthonyWJones

+0

super, merci. – Stef

1

Essayez ceci: -

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 

Qu'est-ce que vous obtenez?

+0

Le script ne demande rien, et le fichier texte que le script est censé écrire est créé, mais il est vide. – Omar

Questions connexes