服务器上的文件名Ã而不是ü

问题描述 投票:0回答:5

我有一个奇怪的文件名问题。但我不确定它是否是来自服务器的问题:

我在网站上的链接如下:

http://new.anwaltskanzlei-hauser.ch/rechtsberatung_zürich.php?lang=ge

或者,如果我复制并粘贴到此处:

http://new.anwaltskanzlei-hauser.ch/rechtsberatung_z%C3%BCrich.php?lang=ge

服务器上的文件名是:rechtsberatung_zürich.php。

所以,我不知道,我需要改变什么,我有一个名为rechtsberatung_zürich.php的文件名

我知道这是charset等问题。有帮助吗?

unicode filenames
5个回答
5
投票

由于页面从外面看起来很好,我认为你不需要在服务器上更改任何内容。

服务器上的文件名是:rechtsberatung_zürich.php。

听起来你正在使用文件传输工具将服务器的文件系统视为windows-1252编码,而实际上服务器将其视为UTF-8。

如何更改文件传输工具为远程文件系统所采用的编码因工具的不同而异。例如,使用WinSCP,有UTF-8 Encoding for Filenames选项。

(如果你使用内置于资源管理器的FTP支持,那么你无能为力,它总是使用本地机器的默认语言环境编码,不幸的是,它永远不会是UTF-8。但是你不想使用FTP在本世纪,你应该尝试在任何情况下转移到SFTP。)


0
投票

你可以格式化charset,如果它在db中作为比较'utf8_general_ci'语言选项


0
投票

我只是做一个站点范围的unicode清理,读取目录,glob目录,读取文件路径,文件名和文件,并将所有内容转换为使用单个字符集,最好是utf-8或utf-32,然后使用该字符集用于一切,服务器,数据库,脚本等。


0
投票

我只是做一个站点范围的unicode清理,读取目录,glob目录,读取文件路径,文件名和文件,并将所有内容转换为使用单个字符集,最好是utf-8或utf-32,然后使用该字符集对于所有内容,服务器,数据库,脚本等等,您可以使用PHP mb_函数集来完成所有这些操作。

<?php

function fixEncoding ( $string, $e_f, $e_t )
{
    return mb_convert_encoding ( $string, $e_f, $e_t );
}

$string = "Italienische Gemüsesuppe";

$encode_from = "windows-1252";

$encode_to = "UTF-8";

echo fixEncoding ( $string, $encode_from, $encode_to ) . "\r\n";

?>

-3
投票

它是UTF-8字符集的一个问题,它不支持一些字符。可能你应该使用ISO-8859-1 charset编码代替UTF-8。

© www.soinside.com 2019 - 2024. All rights reserved.