J'ai une liste de chaînes que j'écris dans un fichier CSV. Je vous écris ce fichier comme ceci:FileInfo, StreamWriter et StringBuilder. Quel codage produit cette combinaison?
FileInfo outputFile = new FileInfo("c:\output.csv");
StreamWriter writer = outputFile.CreateText();
StringBuilder line = new StringBuilder();
// List<String> listOfItems = ...
for (int i = 0, j = listOfItems.Count; i < j; i++) {
line.AppendFormat(" {0}", listOfItems[i]);
}
writer.WriteLine("col1,col2,{0}", line.ToString().Trim(' '));
writer.Close();
Quand j'examinerai c:\output.csv
avec des outils comme Notepad ++ ou enca le fichier semble être le texte brut avec un codage nous-ascii. Mais quand mon client télécharge le fichier CSV à leur boutique en ligne de la colonne construite avec StringBuilder
est dans le format suivant:
:VAL1 :VAL2 :VAL3 ... :VALN
cette colonne devrait en fait être:
val1 val2 val3 ... valN
Notez que la ligne incorrecte a côlons préfixé à chaque valeur, et les valeurs ont été majuscules.
La seule chose que je peux comprendre est un problème d'encodage. Alors, quel encodage le code ci-dessus va-t-il générer?
Mise à jour (1 septembre 2010): Il s'est avéré être un bogue d'affichage dans le magasin en ligne à distance. Ce code génère du texte brut comme il se doit.
Cela ne peut pas être un problème d'encodage. Les différents encodages ne sont que des représentations différentes des mêmes données, ils ne remplacent pas les caractères ou ne changent pas la casse du texte. Le problème doit être ailleurs, probablement pas même dans votre code –