J'ai un texte lu à partir d'un fichier XML stocké en codage UTF8. C# le lit parfaitement, j'ai vérifié avec le débogueur, mais quand j'essaye de le convertir en ASCII pour l'enregistrer dans un autre fichier je reçois un? char dans des endroits où il y avait un caractère conflictuel. Par exemple, ce texte:Conversion de UTF8 en ASCII
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 les remplacer pour leur latin (a, e, i, o, u) voyelles parce que quelques mots en espagnol serait manque le sens. J'ai déjà essayé this et this questions sans succès. Donc j'espère que quelqu'un peut m'aider. La réponse sélectionnée dans le second n'a même pas été compilée ...!
Dans le 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();
}
Essayé avec celui-ci, mais change ó pour o, á pour a. etc ... –
@David: fonctionne parfaitement pour moi, en utilisant le cas de test ci-dessus. Assurez-vous que vous n'avez pas un encodage ASCII (Encoding.ASCII) coincé dans votre code quelque part. –
Désolé, pas ailleurs! testé à nouveau et fonctionne comme un charme ... Maintenant, je sais pourquoi vous avez 18.3K rep !!! ;) –