Php 与æ有关的服务器问题øå;

Php 与æ有关的服务器问题øå;,php,html,special-characters,Php,Html,Special Characters,我有一台UNIX服务器正在运行。我有一个程序,可以将图像上传到我的服务器 但是我对这些角色有一些问题:øæå 在我的程序中,我使用了 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 您不应该将特殊字符直接保存为文件名。给他们一个新名字,比如时间戳,或者用英语替换空间字符 您拥有的是正常的,那么您的服务器/Web服务器有一个默认字符集,例如UTF-8。Linux中的特殊字符显示在此字符集

我有一台UNIX服务器正在运行。我有一个程序,可以将图像上传到我的服务器

但是我对这些角色有一些问题:
ø
æ
å

在我的程序中,我使用了

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

您不应该将特殊字符直接保存为文件名。给他们一个新名字,比如时间戳,或者用英语替换空间字符

您拥有的是正常的,那么您的服务器/Web服务器有一个默认字符集,例如UTF-8。Linux中的特殊字符显示在此字符集中

编辑:


或者,您可以使用此选项并在上载过程中更改文件名

* normal - converts each special character (áéíÁÈÒÖ) to their 
normal character (aeiAEOO)

string $class->normal(string string);

Example: 
print $strings->normal("faço áeéíàÒ");
# will output: faco aeeiaO
试试这个

function de_danishify_filename_on_upload($filename) {
if("do a check") return $filename; // Checks to see if a string is utf8 encoded

$filter_chars = array(
    // Character mapping from UTF-8 characters to ASCII characters. 
    chr(195).chr(134) => 'AE',  // &AElig; to Ae
    chr(195).chr(166) => 'ae',  // &aelig; to ae
    chr(195).chr(152) => 'OE',  // &Oslash; to OE
    chr(195).chr(184) => 'oe',  // &oslash; to oe
    chr(195).chr(133) => 'AA',  // &Aring; to AA
    chr(195).chr(165) => 'aa'   // &aring; to aa
);
$translated = strtr($filename,$filter_chars); // Translate characters

return $translated;
}

检查Web服务器(Apache?)正在使用的字符集。hi。我不知道,因为我不再使用自己的本地apache服务器。我写信给我服务器的运行人员,感谢他们的回复和建议。我想我会遵守的。我试过:$overskrift\u tmp=preg\u replace(“/[^a-zA-Z0-9]/”,“,$overskrift);。当我输入:etætoøtreå。我明白了:etaeligtooslashtrearing。“我不能直接得到埃托特吗?@Pavenhimself看我的答案:)好的,我服务器的管理员告诉我只是为了避免æå,所以我使用你的建议:)谢谢你的回复。也可以用这个是的,但我有另一件事要做:)没问题,很高兴你把它整理好了