我的文件名有一个奇怪的问题。但我不确定它是否是来自服务器的问题:
我在网站上的链接如下:
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的一个问题,依此类推。有什么帮助吗?
答案 0 :(得分:5)
由于页面从外面看起来很好,我认为你不需要在服务器上更改任何内容。
服务器上的文件名是:rechtsberatung_zürich.php。
听起来您使用的文件传输工具将服务器的文件系统视为windows-1252
编码,实际上服务器将其视为UTF-8。
您如何更改文件传输工具为远程文件系统所采用的编码,具体取决于工具的内容。例如,使用WinSCP,有UTF-8 Encoding for Filenames选项。
(如果您使用内置于资源管理器的FTP支持,那么您无能为力,它总是使用您本地计算机的默认语言环境编码,不幸的是,它永远不会是UTF-8。但您不希望在本世纪使用FTP,你应该尝试在任何情况下转移到SFTP。)
答案 1 :(得分:0)
你可以格式化字符集,如果它在数据库中作为比较' utf8_general_ci'语言选项
答案 2 :(得分:0)
我只是进行站点范围的Unicode清理,读取目录,glob目录,读取文件路径,文件名和文件,然后将所有内容转换为使用单个字符集(最好是utf-8或utf-32),然后使用用于所有内容,服务器,数据库,脚本等的字符集。
答案 3 :(得分: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";
?>
答案 4 :(得分:-3)
它是UTF-8字符集的问题,它不支持某些字符。可能你应该使用ISO-8859-1 charset编码代替UTF-8。