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

Unicode 服务器上的文件名ü;而不是ü;,unicode,filenames,Unicode,Filenames,我对文件名有一个奇怪的问题。但我不确定这是否是服务器的问题: 我在网站上的链接如下: 或者,如果我复制并粘贴到此处: 服务器上的文件名是:rechtsberatung_zürich.php 所以,我不知道我到底需要更改什么,我有一个名为rechtsberatung_zürich.php的文件名 我知道这是一个字符集的问题等等。有什么帮助吗?如果字符集在db中,您可以将其格式化为比较“utf8\U general\U ci”语言选项因为页面从外部看起来很好,我认为您不需要更改服务器上的任何内

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

我在网站上的链接如下:

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

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

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


我知道这是一个字符集的问题等等。有什么帮助吗?

如果字符集在db中,您可以将其格式化为比较“utf8\U general\U ci”语言选项

因为页面从外部看起来很好,我认为您不需要更改服务器上的任何内容

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

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

如何更改文件传输工具对远程文件系统采用的编码取决于该工具是什么。例如,对于WinSCP,有一个选项


(如果您使用浏览器内置的FTP支持,那么您无能为力,它总是使用本地计算机的默认区域设置编码,不幸的是,它从来都不是UTF-8。但您不想在本世纪使用FTP,无论如何都应该尝试移动到SFTP。)

UTF-8字符集有问题,它不支持某些字符。可能您应该使用ISO-8859-1字符集编码来代替UTF-8。

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

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

<?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";

?>


“在此处输入链接描述”?有人摸到了一个utf-8编码的字符串。那可能不一定是你,但这是你第一眼看到的地方。我觉得有点奇怪。如果我的文件名是rechtsberatung_zürich.php,那么它可以正常工作。如果我的文件名是rechtsberatung_zürich.php,那么它就不起作用。在数据库中,我有allready utf8通用ci。我可以在哪里查询更多信息?慈祥的西蒙斯,这与事实恰恰相反。UTF-8编码支持所有Unicode字符,是的,这意味着每个拉丁字符集中的每个字符都是任何人都能想到的。不过,这并不意味着它对所有这些文件都使用相同的字节序列。对不起,这完全是胡说八道。UTF-8支持所有Unicode,包括Latin-1(ISO-8858-1)块。UTF-8将ASCII范围之外的代码点(因此任何高于U+007F的代码点)编码为两个字节或更多。这里的问题是UTF-8数据没有被解码为UTF-8,而是使用拉丁语编解码器(不是拉丁语-1,而是Windows代码页1252)。