我有一个名为"同“的文件夹(不管我使用哪个字符或者多少个),在用php打开它后,显示了错误的字符或乱码文本。
<?php
mb_internal_encoding('utf-8');
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo $file;
}
}
closedir($handle);
}
echo "同";
?>返回:
Folder1index.php��同它显示2个“字符”,就好像它没有正确地编码为UTF-8一样。由于有问题的字符的回显,浏览器将页面处理为UTF-8格式。
这是php/code的问题,还是其他原因导致它无法正常显示?(IIS等)
发布于 2011-08-16 06:13:13
问题不在于脚本或网站的UTF-8编码,而在于文件系统中文件名的编码。
您首先需要了解在文件系统级别上使用哪种编码。如果你知道了,你可以将编码后的文件名重新编码成UTF-8 (例如iconv;mb_convert_encoding)。他们将显示良好,然后在您的网站上。
你写的是你在使用IIS,所以我假设你是在windows上运行的。有关详细信息,请参阅this related answer和/或相关问题。
发布于 2011-08-16 05:30:31
这是一个在php - How do I use filesystem functions in PHP, using UTF-8 strings?中处理utf-8文件名的很好的线程
在排序中,您需要对文件名调用urlencode/urldecode。但是,建议您使用drupal的音译模块- Different charset on different server?
https://stackoverflow.com/questions/7071014
复制相似问题