我必须呈现文件列表及其链接。我写了什么:
$path = "pdf/".$lang."/*";
$fileList = glob($path);
echo "<ul>";
foreach($fileList as $filename){
$splitted = explode("/", $filename);
echo '<li><a href="'.$filename.'">'.end($splitted).'</a>';
}
echo "</ul>";
如果文件名中没有特殊字符,则可以使用。如果存在,将呈现�。
我更改了以下代码:
$path = "pdf/".$lang."/";
$fileList = glob($path."*");
echo "<ul>";
foreach($fileList as $entry){
$splitted = explode("/", $entry);
$filename = iconv('WINDOWS-1252', 'UTF-8', end($splitted));
echo '<li><a href="'.$path.$filename.'" target="_blank">'.$filename.'</a>';
}
echo "</ul>";
此解决方案仅适用于本地主机。一旦发布,特殊字符将无法正确呈现。代替ä
,它呈现ä
。
我该怎么解决?
编辑:
这不是this问题的重复项。正如我在上面所写的那样,我得到了“不”。
Localhost和服务器在Windows上运行。 本地主机上的PHP版本是5.6.35。服务器安装在7.1。
答案 0 :(得分:0)
看起来文件名然后用UTF-8编码了两次-您在服务器/本地php上使用什么编码设置?
答案 1 :(得分:0)
我不确定,但这可能是服务器上的文件已编码为ISO-8859-1而不是utf-8。
请参阅以下问题作为参考: Swedish characters and UTF-8
我就这个问题写了一个答案,这是第二个答案。
尝试将字符集元标记更改为ISO-8859-1