Solution pour php fget le code tronqué : Cliquez d'abord sur "Menu Modification->Page Properties->Titre/Encodage" puis sélectionnez "Chinois simplifié" dans l'encodage puis cliquez sur "Recharger" pour confirmer ; , réutilisez la fonction "fgets" pour lire le fichier.
Recommandé : "Tutoriel vidéo PHP"
Solution au code chinois tronqué chinois dans les fichiers txt lus par php
1 : Si la page ouverte comporte des caractères tronqués, ne vous inquiétez pas, ne faites aucune modification pour l'instant, n'oubliez pas
2 : Cliquez ensuite sur le menu pour modifier -> Propriétés de la page -> Titre/Encodage
3 : Sélectionnez Chinois simplifié (gb2321) dans l'encodage
4 : Cliquez sur Recharger -> Confirmer
Créez un nouveau bloc-notes, pas WordPad, puis copiez tous les fichiers à lire pour enregistrer ce fichier bloc-notes, puis utilisez le code suivant pour lire le fichier bloc-notes 1303275.txt. Il s'avère que lorsque la page Web est codée en gb2312, tout s'affiche normalement après le passage au codage utf8. , les chiffres sont normaux et les caractères chinois sont tronqués.
<?php $file = fopen("1303275.txt","r");//只读方式打开文本文件 while(! feof($file))//当文件不结束 { $line=fgets($file);//读一行到$line变量 echo $line."<br />"; } fclose($file);//关闭文本文件 ?>
La méthode ci-dessus est lourde mais elle résout également le problème. Ci-dessous, je propose une solution qui ne gâchera aucun texte txt. . Le code est le suivant :
/* @params $str 输入字符 $type 所需获取编码 @author 长行 */ function autoiconv($str,$type = "gb2312//ignore"){ $utf32_big_endian_bom = chr(0x00) . chr(0x00) . chr(0xfe) . chr(0xff); $utf32_little_endian_bom = chr(0xff) . chr(0xfe) . chr(0x00) . chr(0x00); $utf16_big_endian_bom = chr(0xfe) . chr(0xff); $utf16_little_endian_bom = chr(0xff) . chr(0xfe); $utf8_bom = chr(0xef) . chr(0xbb) . chr(0xbf); $first2 = substr($str, 0, 2); $first3 = substr($str, 0, 3); $first4 = substr($str, 0, 3); if ($first3 == $utf8_bom) $icon = 'utf-8'; elseif ($first4 == $utf32_big_endian_bom) $icon = 'utf-32be'; elseif ($first4 == $utf32_little_endian_bom) $icon = 'utf-32le'; elseif ($first2 == $utf16_big_endian_bom) $icon = 'utf-16be'; elseif ($first2 == $utf16_little_endian_bom) $icon = 'utf-16le'; else { $icon = 'ascii'; return $str;} return iconv($icon,$type,$str); }
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!