Cet article présente principalement le nom de fichier chinois tronqué du téléchargement du fichier PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
En PHP, si le nom du fichier à télécharger est chinois, le titre du fichier sera tronqué.
À ce stade, vous devez encoder le titre, ce qui signifie un code urlen avancé, puis mettre l'en-tête, et le problème est alors résolu.
$filename = urlencode("下载文档"); header ( "Content-disposition: attachment; filename=$filename.xls" );
Il est dit en ligne que dans la définition de la RFC2231, l'encodage multilingue Content-Disposition doit être défini comme ceci :
Le code est le suivant :
Content-Disposition: attachment; filename*="utf8''%E6%B5%8B%E8%AF%95.html"
C'est-à-dire :
Avant le signe égal après le nom de fichier, ajoutez *
La valeur du nom de fichier est divisée en trois segments avec des guillemets simples, qui sont un jeu de caractères (utf8), la langue (vide) et nom de fichier codé en urlen.
Donc, à ce stade, le nom du fichier doit être converti en codage d'URL. Cela peut être facilement fait en utilisant le code urlen de php.
$ua = _SERVER["HTTP_USER_AGENT"]; $filename = "中文 文件名.txt"; $encoded_filename = urlencode($filename); $encoded_filename = str_replace("+", "%20", $encoded_filename); header('Content-Type: application/octet-stream'); if (preg_match("/MSIE/", $ua)) { header('Content-Disposition: attachment; filename="' . $encoded_filename . '"'); } else if (preg_match("/Firefox/", $ua)) { header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"'); } else { header('Content-Disposition: attachment; filename="' . $filename . '"'); }
Résumé : ce qui précède est l'intégralité du contenu de. cet article. J'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Explication détaillée des principes et exemples de fonctionnement en chaîne en PHP
Comment utiliser PHP pour accéder à l'instantané d'Alipay fonction de paiement
Méthode d'implémentation PHP de manipulation de la base de données mysqli
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!