Solutions aux noms tronqués des nouveaux fichiers PHP : 1. Utilisez la fonction "iconv" ou "mb_convert_encoding" pour convertir l'encodage des caractères ; 2. Utilisez la méthode "function convertEncoding($string){...}" pour réaliser la conversion en fonction aux paramètres du système Juste du code.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.
php Que dois-je faire si le nom du nouveau fichier est tronqué ?
Sous Windows, lorsque PHP appelle les fonctions mkdir(), file_put_contents() et fopen() pour créer un nom de répertoire ou de document avec des caractères chinois, des caractères tronqués apparaissent.
La raison
Après avoir vérifié les informations, elle est liée au jeu de caractères du système.
windows (chinois simplifié), le jeu de caractères par défaut est : gbk
windows (chinois traditionnel), le jeu de caractères par défaut est : big5
linux, le jeu de caractères par défaut est : utf-8
Solution
Utilisez la fonction iconv ou mb_convert_encoding pour convertir l'encodage des caractères.
//将字符串 str 从 in_charset 转换编码到 out_charset。 string iconv ( string $in_charset , string $out_charset , string $str ) //将 string 类型 str 的字符编码从可选的 from_encoding 转换到 to_encoding。 string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )
Convertissez l'encodage en fonction des paramètres du système. La méthode est la suivante :
<?php /** * 转换字符编码 * @param $string * @return string */ function convertEncoding($string){ //根据系统进行配置 $encode = stristr(PHP_OS, 'WIN') ? 'GBK' : 'UTF-8'; $string = iconv('UTF-8', $encode, $string); //$string = mb_convert_encoding($string, $encode, 'UTF-8'); return $string; }
Exemple de code tronqué
<?php #示例1 $dir = __DIR__ . '/中英文目录Test1'; mkdir($dir); //目录名:涓嫳鏂囩洰褰昑est1 #示例2 $fileName = __DIR__ . '/中英文档名Test2.txt'; file_put_contents($fileName, '文件内容Test2'); //文件名:涓嫳鏂囨。鍚峊est2.txt //文件内容:文件内容Test2 #示例3 $fileName = __DIR__ . '/中英文档名Test3.txt'; $fp = fopen($fileName, 'w'); fwrite($fp, '文件内容Test3'); fclose($fp); //文件名:涓嫳鏂囨。鍚峊est3.txt //文件内容:文件内容Test3 ?>
Exemple de solution
<?php #示例1 $dir = __DIR__ . '/中英文目录Test1'; $dir = convertEncoding($dir); mkdir($dir); //目录名:中英文目录Test1 #示例2 $fileName = __DIR__ . '/中英文档名Test2.txt'; $fileName = convertEncoding($fileName); file_put_contents($fileName, '文件内容Test2'); //文件名:中英文档名Test2.txt //文件内容:文件内容Test2 #示例3 $fileName = __DIR__ . '/中英文档名Test3.txt'; $fileName = convertEncoding($fileName); $fp = fopen($fileName, 'w'); fwrite($fp, '文件内容Test3'); fclose($fp); //文件名:中英文档名Test3.txt //文件内容:文件内容Test3 /** * 转换字符编码 * @param $string * @return string */ function convertEncoding($string){ //根据系统进行配置 $encode = stristr(PHP_OS, 'WIN') ? 'GBK' : 'UTF-8'; $string = iconv('UTF-8', $encode, $string); //$string = mb_convert_encoding($string, $encode, 'UTF-8'); return $string; }
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!