Conversion de UTF8 en ASCII
J'ai un texte à lire à partir d'un fichier XML stockés dans l'encodage UTF8. C# lit parfaitement, je l'ai vérifié avec le débogueur, mais quand j'essaie de le convertir en ASCII pour l'enregistrer dans un autre fichier je en obtenir un ? char dans les endroits où il y avait un conflit de caractère. Par exemple, ce texte:
string s = "La introducción masiva de las nuevas tecnologías de la información";
Sera enregistré comme
"La introducci?n masiva de las nuevas tecnolog?as de la informaci?n"
Je ne peux pas il suffit de les remplacer pour leur latin (a, e, i, o, u) les voyelles parce que certains mots en espagnol serait manquer le sens. J'ai déjà essayé cette et cette des questions sans succès. Donc Im espérant que quelqu'un pourra m'aider. La réponse sélectionnée dans le second n'a pas encore compilé...!
Au cas où quelqu'un veut jeter un oeil, mon code est celui-ci:
private void WriteInput( string input )
{
byte[] byteArray = Encoding.UTF8.GetBytes(input);
byte[] asciiArray = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, byteArray);
string finalString = Encoding.ASCII.GetString(asciiArray);
string inputFile = _idFile + ".in";
var batchWriter = new StreamWriter(inputFile, false, Encoding.ASCII);
batchWriter.Write(finalString);
batchWriter.Close();
}
source d'informationauteur David Conde | 2010-12-04
Vous devez vous connecter pour publier un commentaire.
Ces personnages n'ont pas de projection au format ASCII. L'examen d'une table ASCII, comme Wikipédiapour vérifier cela. Vous pourriez être intéressé en Windows 1252 encodage, ou "ASCII étendu", comme il est parfois appelé, qui a des points de code pour de nombreux caractères accentués, espagnol inclus.
Ne peut pas être fait. ASCII ne dispose pas de ces lettres, donc le mieux que vous pouvez faire est de l'encoder ou unicode-escape-encoder.