L'écriture de texte vers le fichier UTF8
Je suis à l'aide de la fonction suivante pour enregistrer le texte dans un fichier (sur IE-8 w/ActiveX).
function saveFile(strFullPath, strContent)
{
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var flOutput = fso.CreateTextFile( strFullPath, true ); //true for overwrite
flOutput.Write( strContent );
flOutput.Close();
}
Le code fonctionne très bien si le texte est entièrement en Latin-9, mais lorsque le texte contient même un seul codé en UTF-8 du caractère, de l'écriture échoue.
L'ActiveX FileSystemObject ne supporte pas l'UTF-8, il me semble. J'ai essayé le codage UTF-16 d'abord le texte, mais le résultat a été déformé. Qu'est ce qu'une solution de contournement?
merci beaucoup les gars. a été en mesure de résoudre code.google.com/p/memonaut/issues/detail?id=6&can=7 avec votre aide.
OriginalL'auteur sonofdelphi | 2010-05-15
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Il n'y a pas de
BinaryWrite
méthode dansITextStream
objet retourné par laCreateTextFile
méthode, et qu'est-ce queUtf8Lib.Utf8Enc
?OriginalL'auteur Mathias Bynens
Ajouter un troisième paramètre,
true
, dans votre appel à laCreateTextFile
méthode. Voir cette page.OriginalL'auteur Salman A
La
CreateTextFile
méthode a un troisième paramètre qui décide si le fichier sera écrit unicode ou pas. Vous pouvez faire comme:Fait intéressant, le chemin du retour, j'avais créé ce petit script pour enregistrer les fichiers au format unicode:
Remarque: C'est le code VBScript, vous devez enregistrer le code dans un fichier, comme
unicode.vbs
, et une fois que vous double-cliquez sur ce fichier, il sera exécuté.OriginalL'auteur Sarfraz
object.CreateTextFile(filename[, overwrite[, unicode]])
OriginalL'auteur Cleverson