Maison  >  Article  >  développement back-end  >  Les caractères chinois ne peuvent-ils pas être ajoutés au nom du fichier php ?

Les caractères chinois ne peuvent-ils pas être ajoutés au nom du fichier php ?

(*-*)浩
(*-*)浩original
2019-10-16 15:06:212294parcourir

Il n'est pas recommandé d'utiliser des noms de fichiers chinois !

Étant donné que le chinois sera codé en URL et envoyé, il sera décodé lorsqu'il sera envoyé au serveur, mais s'il est incohérent avec votre encodage, il ne pourra pas être décodé. .

Les caractères chinois ne peuvent-ils pas être ajoutés au nom du fichier php ?

Pour faire simple, le chinois dans l'URL sera codé en UTF-8 par défaut dans les navigateurs courants Envoyer au serveur ! Dans le serveur d'environnement Windows chinois, lors du décodage de l'URL, le codage gb2312 est utilisé pour le décodage, ce qui entraîne l'impossibilité d'obtenir le texte chinois original que vous avez saisi dans la barre d'adresse !

Il sera donc demandé que le nom du fichier soit introuvable.

Si vous devez utiliser le chinois, la solution est limitée à votre solution de navigation locale

Dans le navigateur, ouvrez le menu "Options Internet", sélectionnez "Avancé", puis Rechercher "Envoyer l'URL UTF-8" et supprimez le hook précédent. Confirmez ensuite.

Redémarrez le navigateur. De cette façon, le chinois dans la barre d'adresse sera envoyé par défaut en encodage gb2312, afin que le serveur puisse trouver correctement le fichier avec le nom de fichier chinois

Le jeu de graphiques de la page Web précédente utilisée utf-8 et le fichier Utilisez également utf-8, puis utilisez fopen() pour créer un fichier avec un nom de fichier chinois Le problème apparaît, le nom du fichier est tronqué !

J'ai vérifié beaucoup de documents et essayé de nombreuses méthodes, mais je n'ai pas pu le résoudre. Je pensais utiliser d'autres méthodes pour contourner ce problème, mais tout à coup, je me suis rendu compte que le codage de texte par défaut de Windows était ansi. , puis j'ai cherché à nouveau et confirmé. Pour comprendre cela, ma page Web doit également être codée en ansi afin que le nom du fichier créé ne soit pas tronqué.

Ensuite, j'ai commencé à vérifier, j'ai enregistré la page Web avec ansi et j'ai supprimé l'instruction chartset. changé l'inclusion La page Web a également été modifiée en ansi pour enregistrer, haha ​​​​tout va bien

La programmation est vraiment un travail qui repose sur l'accumulation Si je n'avais jamais vu que l'encodage par défaut de Windows est ansi, alors ce problème sera résolu en un rien de temps.

ps : < meta content ="text/html; charset=utf-8" http -equiv ="Content-type" > placé dans Cela ne fonctionnait qu'avant

Plus tard, j'ai pensé à une meilleure solution. La page Web est toujours codée et enregistrée en utf-8. fopen() est codé séparément. PHP a iconv() est un programme qui modifie l'encodage. Il convertit utf-8 en gb2312 pour éviter les noms de fichiers chinois tronqués

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn