我有一些URL,我相信它们是CP-1251编码的。例如:
http://domain.com/Test - суть в этом.mp3
mb_detect_encoding
表明这是 ASCII 编码。但是,我尝试将其转换为 UTF-8,但没有成功。不过下面的方法可以解决问题:
$url = mb_convert_encoding(urldecode($url), "Windows-1251", "auto");
这意味着它将url转换为
Windows-1251
编码。虽然这很奇怪,但它可以正确显示字符。但是当我将这个转换后的url插入到一个html对象中(如一些音乐播放器)时,它不起作用。Firebug显示错误:"NetworkError: 404 Not Found - http://domain.com/Test%20-%20????%20?%20????.mp3"
某种方式,我得到了问号而不是正确的url。使用urlencode
没有帮助。
文件本身是utf-8
编码。
我对所有这些东西感到困惑。这里是否有任何解决方案?
utf8_encode($url)
吗?如果你的页面编码设置为 utf-8,这应该可以解决问题。 - Michael Miorhttp://domain.com/Test - СÐСÑСâСРРРСÐСâÐ ÑÐ Ñ.mp3
,这当然不好。 - grjj3utf-8
”时,你是指HTML页面吗? - Michael Mior