【发布时间】:2010-10-17 00:28:15
【问题描述】:
我想访问一个名称中包含 UTF-8 字符的 PHP 文件。
文件中没有 BOM。它只包含一个显示几个 unicode 字符的 echo 语句。
从浏览器(FireFox 3.0.8、IE7)访问 PHP 页面会导致 HTTP 错误 500。
Apache日志中有两个条目(文件是/க.php;字母க是复合的,对应下面日志中的字符\xe0\xae\x95):
[Sat Apr 04 09:30:25 2009] [error] [client 127.0.0.1] PHP Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0
[2009 年 4 月 4 日星期六 09:30:25] [错误] [客户端 127.0.0.1] PHP 致命错误:未知:打开失败需要 'D:/va/ROOT/\xe0\xae\x95.php' ( include_path='.;C:\php5\pear') 在第 0 行的未知中
当文件名和目录名是英文时,相同的页面可以工作。在相同的设置中,对这些页面使用 SSI 没有问题。
编辑
删除了有关 url 重写的信息,因为它似乎不是一个因素。
移除 mod_rewrite 后,PHP 文件仍然无法工作。如果文件重命名为非 UTF 名称,则有效。但是,shtml 甚至可以在文件和/或路径名中使用 UTF 字符。
【问题讨论】:
标签: php apache unicode utf-8 url-rewriting