2011-12-17 53 views
0

使用cURL我保存文件名为UTF-8字符的文件。 例如:PHP编码 - UTF-8

testšć.docx

当我用mb_detect_encoding(),它返回我ASCII。 所以我试图用iconv从ASCII转换为UTF-8,并从UTF-8转换为UTF-8。 这两个选项都不起作用。

因此,任何人有一些建议,我怎么能保持UTF-8的文件名?

干杯!

+0

确保PHP文件是编码d在UTF8如果你正在做数据的输出,并尝试使用函数utf8_encode转换为正确的编码(http://php.net/manual/en/function.utf8-encode.php) – 2011-12-17 02:33:51

+0

显示的一段代码,调用`mb_detect_encoding`。你准确称呼“mb_detect_encoding”*是什么?还要注意``mb_detect_encoding`不是一门真正的科学,如果你知道你正在处理的是什么编码,你几乎不需要它。 – deceze 2011-12-17 02:45:33

回答

1

你的文件系统(和操作系统)必须支持,以保持在文件名中使用UTF-8的文件UTF-8编码的文件名。如果不支持,那么最好的选择是将它们转换为已知的音译,或丢弃(替换)无法转换的字符。

0

与MySQL类似,当你的MySQL数据以UTF8编码时,你应该通过UTF8“通信”读取它,因为你的HTML数据是UTF8,我认为你的问题是(我没有全部你的代码知道IM正确的),你是不是读它作为UTF8

尝试增加此选项可将卷曲的配置:

curl_setopt($ch, CURLOPT_ENCODING, "UTF-8"); 

我不知道如果这是你错过了什么,但如果不让我知道,我会更新我的答案...