Il existe trois façons pour PHP de résoudre les caractères tronqués lors de l'écriture de txt : 1. Définir l'encodage du fichier Avant d'écrire le fichier, vous pouvez définir l'encodage du fichier sur UTF-8 en appelant "mb_internal_encoding()" et "mb_http_output(). )" ; 2. Afficher la marque d'ordre des octets de la nomenclature pour identifier la méthode de codage Unicode utilisée par le fichier pour éviter les caractères tronqués ; 3. Utiliser la fonction fwrite() avec des options pour garantir que la longueur des données écrites dans le fichier est la même que celle la longueur fournie pour éviter les caractères tronqués.
Le système d'exploitation de ce tutoriel : système Windows 10, version php8.1.3, ordinateur Dell G3.
Solution au txt tronqué écrit par php :
1. Définissez l'encodage du fichier
Avant d'écrire le fichier, vous pouvez définir l'encodage du fichier sur UTF-8 en appelant les fonctions mb_internal_encoding() et mb_http_output().
<?php // 设置内部字符编码为UTF-8 mb_internal_encoding('UTF-8'); // 设置 HTTP 输出字符编码为UTF-8 mb_http_output('UTF-8'); $file = 'data.txt'; $content = '你好世界!'; $handle = fopen($file, 'w'); fwrite($handle, $content); fclose($handle); ?>
2. Output BOM Byte Order Mark
BOM (Byte Order Mark) est une séquence d'octets spéciale qui apparaît généralement au début d'un fichier texte Unicode et est utilisée pour identifier la méthode de codage Unicode utilisée par le fichier (. big-endian ou small-endian). S'il n'y a pas de marque de nomenclature dans l'en-tête du fichier, le texte peut être tronqué.
Vous pouvez utiliser le code suivant pour afficher la marque BOM dans le fichier :
<?php $file = 'data.txt'; $content = "\xEF\xBB\xBF" . '你好世界!'; // 在内容前添加BOM标记 $handle = fopen($file, 'w'); fwrite($handle, $content); fclose($handle); ?>
3. Utilisez la fonction fwrite() avec des options
La fonction fwrite() peut accepter un troisième paramètre facultatif, indiquant le contenu à être écrit La longueur de la chaîne. Si la longueur des données écrites dans le fichier ne correspond pas à la longueur fournie, des caractères tronqués apparaîtront. Par conséquent, en utilisant cette option, vous pouvez vous assurer que les données écrites dans le fichier ont la même longueur que la longueur fournie.
<?php $file = 'data.txt'; $content = '你好世界!'; $handle = fopen($file, 'w'); $length = strlen($content); fwrite($handle, $content, $length); fclose($handle); ?>
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!