在我的本地主机上,我有两个文件:
IMG_9029_измен.размер.jpg和słońce32 opalenier1.jpg
我想通过scandir()或readdir()获得主题的文件名,但不能从文件名中提取。他们是这样的:
IMG_9029_?????.??????.jpg and slonce32 opalenier.jpg
Window XP SP3, php5.2.12 我怎样才能像IMG_9029_измен.размер.jpg and słońce32 opalenier1.jpg那样获得文件名呢?
发布于 2011-09-12 23:02:39
我假设您的php编码是utf-8。
$files = scandir($dirname);
foreach ($files as $file) {
$filename = iconv ( "windows-1251" , "UTF-8", $file );
echo $filename ."\n";
}它应该适用于第一个文件,但我不知道第二个文件使用哪种编码方式。
主要问题是php 5不支持文件操作的utf-8。这是内部的安西。因此,它使用ansi读取文件名(只有8位编码)。
发布于 2010-08-23 05:17:07
名称可能是正确的,但您需要将页面的编码设置为UTF-8。
将其添加到页面的标题部分:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 然后将字符串转换为UTF8,以便正确显示特殊字符。
我做了一个函数,它叫做Encoding::toUTF8().
用法:
$utf8_string = Encoding::toUTF8($utf8_or_latin1_or_mixed_string);下载:
http://dl.dropbox.com/u/186012/PHP/forceUTF8.zip
https://stackoverflow.com/questions/3544772
复制相似问题