我正在尝试使用PHP来读取一个Windows文件夹,其中文件夹内容包含具有西班牙语名称的文件(例如Español.doc)
然而,在上述情况下,文件名打印错误,“Espan ?? ol.doc”。
函数mb_detect_encoding($file)
返回ASCII但不显示ñ。对此有快速解决方法吗?
我使用的是PHP 5.4.16,Windows 7家庭高级版Service Pack 1,Apache / 2.4.4和(Win32)OpenSSL / 0.9.8y。
答案 0 :(得分:0)
尝试将文件名转换为cp1252
,如下所示:
if (file_exists(iconv('utf-8', 'cp1252', $utffilename)));
答案 1 :(得分:0)
以下是我在5.3.x / Ubuntu上在控制台环境中尝试的内容:
<?php
$file = 'Español.doc';
echo file_get_contents($file);
该文件包含单词&#34; Hello&#34;,并且它打印到屏幕上。因此,我认为可以肯定地说,即使是旧版本的PHP也支持UTF-8文件名。
问题可能是Windows上的PHP表现不同吗?也可以在控制台中试试这个。
另外,请与浏览器一起查看它正在使用的渲染模式。对于Firefox,请使用“查看页面信息”并在“常规”选项卡中选中“编码”。