解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的有关问题
解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
这次又遇到这个问题了, 在网上一番寻找, 在一篇java的文章里找到了原因, 是由于输出的CSV文件中没有BOM.
什么是BOM?
在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。
UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
Windows就是使用BOM来标记文本文件的编码方式的。
那么如何在PHP中输出BOM呢?
在所有内容输出之前
print(chr(0xEF).chr(0xBB).chr(0xBF)); ?
<?php function writeCsvToFile($file,array $data){ $fp = fopen($file, 'w'); //Windows下使用BOM来标记文本文件的编码方式 fwrite($fp,chr(0xEF).chr(0xBB).chr(0xBF)); foreach ($data as $line) { fputcsv($fp, $line); } fclose($fp); } $file = "./testcsv.csv"; $data = array( array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), array(1,'色色',12345,'vb200'), ); writeCsvToFile($file,$data);

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

VB est un langage de programmation de haut niveau. Il s'agit d'un langage de programmation général basé sur les objets, structuré, modulaire, orienté objet et comprenant un mécanisme piloté par les événements pour faciliter l'environnement de développement. adopte La conception intuitive de l'interface utilisateur graphique vous permet de développer des applications en glissant-déposant des contrôles, en définissant des propriétés et en écrivant des gestionnaires d'événements. Cette méthode de programmation visuelle permet aux développeurs de concevoir et de programmer intuitivement des interfaces sans grande expérience en codage.

Titre : Exemple d'utilisation de la fonction Array.Sort pour trier un tableau en C# Texte : En C#, un tableau est une structure de données couramment utilisée, et il est souvent nécessaire de trier le tableau. C# fournit la classe Array, qui possède la méthode Sort pour trier facilement les tableaux. Cet article explique comment utiliser la fonction Array.Sort en C# pour trier un tableau et fournit des exemples de code spécifiques. Tout d’abord, nous devons comprendre l’utilisation de base de la fonction Array.Sort. Tableau.Donc

Lors de la programmation en PHP, nous avons souvent besoin de fusionner des tableaux. PHP fournit la fonction array_merge() pour terminer la fusion du tableau, mais lorsque la même clé existe dans le tableau, cette fonction écrasera la valeur d'origine. Afin de résoudre ce problème, PHP fournit également une fonction array_merge_recursive() dans le langage, qui peut fusionner des tableaux et conserver les valeurs des mêmes clés, rendant la conception du programme plus flexible. tableau_merge

En PHP, il existe de nombreuses fonctions de tableau puissantes qui peuvent rendre les opérations sur les tableaux plus pratiques et plus rapides. Lorsque nous devons combiner deux tableaux en un tableau associatif, nous pouvons utiliser la fonction array_combine de PHP pour réaliser cette opération. Cette fonction est en fait utilisée pour combiner les clés d'un tableau avec les valeurs d'un autre tableau dans un nouveau tableau associatif. Ensuite, nous expliquerons comment utiliser la fonction array_combine en PHP pour combiner deux tableaux en un tableau associatif. En savoir plus sur array_comb

Il existe 5 objets DOM dont « document », « élément », « nœud », « événement » et « fenêtre » 2. « fenêtre », « navigateur », « emplacement » et « historique » et « écran » et 5 autres ; types d'objets de nomenclature.

Int en VB fait référence à une fonction qui prend un entier. Sa syntaxe est telle que "int(x)", ce qui signifie prendre le plus grand entier non supérieur à x. Les fonctions similaires à la fonction int incluent la fonction Fix, qui supprime la décimale ; partie et renvoie le reste, l'entier suivant.

BOM et DOM sont différents en termes de rôle et de fonction, de relation avec JavaScript, d'interdépendance, de compatibilité des différents navigateurs et de considérations de sécurité. Introduction détaillée : 1. Rôle et fonction. La fonction principale de BOM est de faire fonctionner la fenêtre du navigateur. Il fournit un accès et un contrôle directs à la fenêtre du navigateur, tandis que la fonction principale de DOM est de convertir le document Web en une arborescence d'objets. les développeurs doivent utiliser cette arborescence d'objets pour obtenir et modifier les éléments et le contenu de la page Web ; 2. Relation avec JavaScript, etc.

Dans la programmation PHP, un tableau est une structure de données très importante qui peut facilement gérer de grandes quantités de données. PHP fournit de nombreuses fonctions liées aux tableaux, array_fill() en fait partie. Cet article présentera en détail l'utilisation de la fonction array_fill(), ainsi que quelques conseils d'applications pratiques. 1. Présentation de la fonction array_fill() La fonction de la fonction array_fill() est de créer un tableau d'une longueur spécifiée et composé des mêmes valeurs. Plus précisément, la syntaxe de cette fonction est
