php en-tête Excel et utf-8
ob_start();
echo 'Désçàui';
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
header("Content-type: application/x-msexcel; charset=utf-8");
header("Content-Disposition: attachment; filename=Test.xls");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
ob_end_flush();
Ce que j'obtiens dans le fichier excel est Désçà ui
Cependant, je ne reçois Désçàui quand j'essaie
ob_start();
echo 'Désçàui';
header("Content-Type: text/html; charset=utf-8");
ob_end_flush();
Tout aider les experts?
PS. Le fichier est enregistré dans DW avec Titre/Codage Unicode(Utf-8).
source d'informationauteur Jeremy Roy | 2011-03-20
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr, mais il se peut que excel ne peut pas gérer l'utf-8(selon la version). Mais il peut gérer utf16, alors essayez de convertir le jeu de caractères.
Cela fonctionne pour moi(dans excel2002):
Source http://www.mwasif.com/2007/5/download-data-csv-using-php/
Solution a fonctionné pour moi
Danois Zahur dit,
Le 7 octobre, 2009 @ 7:23 pm
Si votre contenu est au format UTF-8, alors pas besoin de convertir l'encodage. Il suffit de commencer votre fichier/flux de sortie avec l'encodage UTF-8 BOM après les en-têtes.
echo pack("CCC",0xef,0xbb,0xbf);
Et l'en-tête doit contenir l'encodage UTF-8
header( "Content-type: application/vnd.ms-excel; charset=UTF-8" );
Il fonctionnera comme un charme, car Excel reconnaîtra jeu de caractères du fichier avec BOM octets.
Je ne sais pas comment vous générez le fichier excel. Mais, si vous le faites à partir d'une sortie HTML, vous pouvez simplement ajouter le suivant au début:
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
Ce qui concerne
Ce UTF-8 BOM ligne de code fait mon UTF-8 caractères, beau travail:
La
content-type
les en-têtes sont pertinentes pour le navigateur uniquement. Ils n'ont aucun effet sur les fichiers téléchargés. Une fois le fichier enregistré, il est à l'application de décider de la façon dont elle traite les données dans le fichier.L'exemple que vous montrez n'est pas valide d'un fichier Excel en premier lieu. Lors de la rencontre, il faut qu'elle pense que c'est un fichier endommagé, Excel probablement commutateurs à certains de traitement par défaut qui suppose
windows-1252
ou une autre single-byte character set.Vous auriez à donner Excel un bon fichier pour l'ouvrir. Alternativement, il peut être possible d'utiliser l'ancien "Sortie HTML, mais enregistrer sous XLS" truc et spécifier un encodage UTF-8 dans que fichier HTML.
Conversion utf8 html-entités ont travaillé très bien pour moi :
essayer cette
Essayez ceci: