Maison  >  Article  >  développement back-end  >  Que faire si la bom php contient des caractères chinois tronqués

Que faire si la bom php contient des caractères chinois tronqués

藏色散人
藏色散人original
2021-12-01 10:18:132002parcourir

Solution au code chinois tronqué de php bom : 1. Ouvrez le fichier de développement PHP correspondant ; 2. Ajoutez "$bom = pack("C3",239,187,191);$strcsv =$bom.$strcsv;".

Que faire si la bom php contient des caractères chinois tronqués

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.4, ordinateur DELL G3

php bom Que faire avec les caractères chinois tronqués

Le problème de code tronqué causé par BOM dans le développement PHP ?

Le projet doit être en php Téléchargez directement le fichier csv, mais une fois le fichier téléchargé, des caractères tronqués s'affichent dans Excel. Donc pour augmenter la nomenclature, la méthode est la suivante :

$bom = pack("C3",239,187,191);   //bom: xEFxBBxBF
$strcsv =$bom.$strcsv;

Ce qui suit est une explication plus concise tirée d'Internet :

Description de la nomenclature : Il y a un caractère appelé "ZERO WIDTH NO-BREAK SPACE" dans l'encodage UCS, et son codage est FEFF . FEFF est un caractère qui n'existe pas dans UCS, il ne devrait donc pas apparaître dans la transmission réelle. La spécification UCS recommande de transmettre les caractères "ZERO WIDTH NO-BREAK SPACE" avant de transmettre le flux d'octets. De cette façon, si le récepteur reçoit FEFF, cela indique que le flux d'octets est Big-Endian ; s'il reçoit FFFE, cela indique que le flux d'octets est Little-Endian. Par conséquent, le caractère « ZERO WIDTH NO-BREAK SPACE » est également appelé BOM.

UTF-8 ne nécessite pas de nomenclature pour indiquer l'ordre des octets, mais peut utiliser la nomenclature pour indiquer la méthode d'encodage. Le codage UTF-8 du caractère « ZERO WIDTH NO-BREAK SPACE » est EF BB BF. Ainsi, si le récepteur reçoit un flux d'octets commençant par EF BB BF, il sait qu'il est codé en UTF-8. Windows utilise BOM pour marquer l'encodage des fichiers texte.

PHP n'a pas pris en compte le problème de la nomenclature lors de la conception, ce qui signifie qu'il n'ignorera pas les trois caractères de la nomenclature au début du fichier encodé en UTF-8.

Apprentissage recommandé : "Tutoriel vidéo PHP"

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