2009-09-10 9 views
3

J'ai demandé ce question il ya un jour concernant les caractères grecs Unicode, et maintenant j'ai une question qui s'appuie sur celui-ci. Après avoir extrait toutes mes données, j'ai essayé de le préparer pour l'importation dans Excel.Caractère étrange "Â" avant les degrés symbole Celcius "° C"

J'ai dû choisir un fichier délimité par des tabulations car certaines de mes données contiennent des virgules (chance moi!).

Le problème que je rencontre est un caractère très étrange après avoir importé les données dans Excel.

Les données de la colonne dans Notepad ++ ressemble à ceci:

Total Suspended Solids @105°C 

Les données de cellule Excel ressemble à ceci:

Total Suspended Solids @105°C 

Je ne comprends pas pourquoi cela se passe. Cela a-t-il quelque chose à voir avec la façon dont le symbole des degrés est représenté?

p.s. Je les symboles de cette question sont la copie directe et coller

+1

La définition explicite du format de flux de sortie en UTF8 corrigera le problème dans Excel. var sw = new System.IO.StreamWriter (fs, Encoding.UTF8) – bwing

Répondre

2

Je ne suis pas absolument sûr, mais je pense que Excel attend de caractères Windows-1252 encodage, alors assurez-vous de créer votre fichier texte à l'aide Encoding.GetEncoding("Windows-1252").

Par exemple:

using (var writer = new StreamWriter(fileName,false,Encoding.GetEncoding("Windows-1252")) 
{ 
.... 
} 
6
  1. (plus probable) Excel interprète vos données textuelles en latin-1 ou fenêtres-1252, et non UTF-8. "Â °" est ce que vous obtenez si vous prenez les octets UTF-8 pour "°" (0xc2 0xb0) et interprétez chaque octet comme un caractère de latin-1 ou de windows-1252. Existe-t-il une option pour l'encodage d'entrée lors de l'importation?
  2. (Moins probable) Excel fait la bonne chose, mais vous double-encoder vos données (encodage comme UTF-8, puis ré-interpréter comme un encodage 8 bits et l'encodage nouveau comme UTF-8 ou tout autre encodage Unicode). Notepad ++ la preuve est contre celui-ci.
+0

@Hobbis: OK, cependant, l'original est dans Excel, et ce caractère spécial "Â" n'est pas présent – Chris

+0

Le tri-déclenchement des données pourrait introduire le caractère supplémentaire si vous convertissez la page de codes de non-UTF8 à UTF8. – fbrereto

+2

Le caractère degré est 0xB0 dans Windows-1252, IBM-437 et ISO Latin 1. Lorsque ceci est codé en UTF-8, le 0xB0 devient 0xC2 0xB0. Il semble qu'Excel lise ceci comme "ANSI" par défaut. Lorsque vous importez les données, vous pouvez lui indiquer explicitement d'utiliser UTF-8 en sélectionnant l'option "Origine du fichier" - du moins telle qu'elle était dans Excel 2003. –

0

Vous pouvez utiliser la nomenclature UTF-8 pour votre fichier.

Questions connexes