Penyelesaian kepada nama fail PHP baharu yang bercelaru: 1. Gunakan fungsi "iconv" atau "mb_convert_encoding" untuk menukar pengekodan aksara 2. Gunakan "function convertEncoding($string){...} " kaedah untuk melaksanakan Hanya tetapkan tetapan sistem untuk menukar pengekodan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.
Apakah yang perlu saya lakukan jika nama fail baharu dalam php rosak?
Di bawah tetingkap, apabila PHP memanggil fungsi mkdir(), file_put_contents(), dan fopen() untuk mencipta direktori atau nama dokumen dengan aksara Cina, aksara bercelaru muncul.
Punca
Selepas menyemak maklumat, ia berkaitan dengan set aksara sistem.
windows (Cina Ringkas), set aksara lalai ialah: gbk
windows (Cina Tradisional), set aksara lalai ialah: big5
linux, set aksara lalai ialah: utf-8
Penyelesaian
Gunakan iconv atau fungsi mb_convert_encoding Tukar pengekodan aksara.
//将字符串 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() ] )
Tukar pengekodan mengikut tetapan sistem Kaedahnya adalah seperti berikut:
<?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; }
Contoh kod bercelaru
<?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 ?>
<?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; }
Tutorial Video PHP"
Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika nama fail php baharu rosak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!