2008-12-16 5 views
0

J'ai fait un code qui exporte des détails d'un article de journal à un gestionnaire de référence appelé Endnotefichiers en streaming et jeux de caractères problème

Le format est une liste d'éléments comme ci-dessous (auteur):

%A Schortgen Frédérique 

Malheureusement, je rencontre des problèmes d'encodage quelque part, comme lorsque le fichier ouvre endnote, voici ce qu'il fait de l'auteur ci-dessus:

Schortge Frà © dà © rique

j'ai frénétiquement essayé de jouer avec l'encodage et d'autres choses que je suis et je suis délivrer en sortie à perte, voici le code:

 Response.ContentType = _citation.ContentType; 

     string fileExtension = ""; 
     if (_citation.GetFileExtension() != null) 
      fileExtension = "." + _citation.GetFileExtension(); 

     Response.AddHeader("content-disposition", "attachment; filename=citation" + fileExtension); 
     Response.ContentType = _citation.GetFileReferrer(); 
     Response.Charset = "UTF-8"; 
     Response.write(-snip-); 
     Response.End(); 

Répondre

1

Il ressemble Note ne s'y attend pas UTF- 8. Avez-vous des détails sur ce que la note attend? Vous pouvez trouver qu'utiliser Encoding.GetEncoding (1252) ou Encoding.GetEncoding (28591) (qui sont Westernpage page 1252 et ISO-8859-1 respectivement) peut fonctionner. Btw, vous définissez deux fois le paramètre Response.ContentType à l'aide de la commande. Cela semble improbable d'être une bonne chose.

+0

Il semble y avoir très peu de documentation que je peux trouver sur la production de fichiers EndNote (beaucoup à mon agacement). Mais d'après ce que je peux comprendre, il supporte UTF-8. Bon point sur la répétition, j'ai réparé cela. Je n'ai pas résolu mon problème d'origine: p – qui

+0

Pouvez-vous * créer * un fichier avec ce nom dans Endnote et voir à quoi ça ressemble (en utilisant un éditeur hexadécimal)? –

0
Response.Charset = "ISO-8859-1";    
Response.ContentEncoding = System.Text.Encoding.GetEncoding(28591); 
Response.HeaderEncoding = System.Text.Encoding.GetEncoding(28591); 

Vous Monsieur, sont une légende (encore une fois)