2010-10-29 3 views
0

je le texte suivant dans un fichier ...et le remplacement Parsing des caractères spéciaux à partir du fichier

blah blah ñ blah

Notez que le symbole ñ.

Je suis en train de lire ceci avec StreamReader.ReadLine puis d'essayer un string.Replace pour remplacer le caractère spécial.

Pour une raison quelconque, cela ne fonctionne pas, et il semble être quelque chose à voir avec le StreamReader. Lorsque j'inspecte la chaîne dans le débogueur après avoir lu la ligne, j'obtiens cette forme de boîte que les éditeurs de texte affichent quand ils ne peuvent pas rendre un caractère.

Essayer similaire directement dans le code fonctionne très bien ...

int test = "helloñworld".IndexOf('ñ');

donc je figure, il doit être le StreamReader.

Des idées?

+0

utilisez un encodage? Voir, ce lien peut vous aider car il traite de quelque chose de similaire: http://stackoverflow.com/questions/640242/file-encoding-when-reading-a-file-with-streamreader –

+0

Je voulais dire, est-ce qu'il donne spécifiquement codage particulier? Pas l'implicite mais la spécification explicite. –

Répondre

2

Créez le StreamReader avec le codage correct de votre fichier texte en utilisant le constructeur StreamReader(Stream, Encoding) ou StreamReader(String, Encoding). Les codages courants sont de nos jours Latin 1 ou UTF-8.

+0

Comment savoir quel est le codage de mon fichier texte? – fearofawhackplanet

+0

@fear: Vous l'avez sauvé, je présume. En fonction de votre éditeur, cela peut être quelque chose du jeu de caractères OEM (CP850 ou 437), Latin 1 à Unicode (UTF-8 ou UTF-16). Je suppose que CP1252 est l'option la plus probable, cependant. – Joey

+0

Non, je ne l'ai pas sauvegardé, c'est une exportation depuis une base de données de 20 ans. Quoi qu'il en soit, avec essais et erreurs, il semble que UTF7 fonctionne. – fearofawhackplanet

0

Définissez le codage correct dans le constructeur Streamreader surchargé.

Hope this helps, Ilya

Questions connexes