如何在PHP中读取外部文件名?

时间:2014-04-05 12:37:52

标签: php encoding utf-8 character-encoding

我正在尝试使用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。

2 个答案:

答案 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,请使用“查看页面信息”并在“常规”选项卡中选中“编码”。