3

PHP 无法处理带有 Unicode 字符的文件:当我在浏览器上访问testSite/главная.php时,它会抛出此错误。

警告:未知:无法打开流:第 0 行的未知中没有此类文件或目录

致命错误:未知:在第 0 行的未知中需要打开失败

但是testSite/главная.html很好。

无论如何我可以解决这个问题,还是我必须使用更好地处理 Unicode 的不同编程语言?

具有 unicode 名称的文件夹中的 Apache htdocs

4

5 回答 5

0

打开一个带有unicode文件名的php文件不是一件php事情,而是取决于底层操作系统。只要操作系统支持 unicode 文件名,它就可以工作。

在我的 debian 挤压上,这根本不是问题,Windows 7(运行 netbeans 的地方)创建一个名为的文件главная.php没有问题:

include 'главная.php';

在此处输入图像描述

于 2012-10-10T11:01:01.237 回答
0

在我看来,您的网络服务器对 URI 使用 win-1252 编码。尝试在您的 apache/nginx/whatever 配置中设置 utf-8。如果 unicode 名称仅在 require()/include() 上下文中使用,您还可以使用 iconv()/mb_convert_encoding() 转换编码。

于 2012-10-10T11:11:04.923 回答
0

也许它有效:

mb_internal_encoding('UTF-8');
ini_set('default_charset', 'UTF-8');
于 2012-10-10T11:34:23.520 回答
0

这不可能。

这是解释原因的线程

PHP 文件名(或其完整路径中的目录)可以包含 UTF-8 字符吗?

于 2014-05-28T23:01:57.820 回答
0

在 PHP5 中使用“wfio://”

https://github.com/kenjiuno/php-wfio

对于文件夹访问使用修复:

.ht 访问:

php_value auto_prepend_file C:/fix.php

修复.php:

$file = $_SERVER['SCRIPT_FILENAME'];
if (!is_readable($file)) {
    $file="wfio://".$file;
                include $file;
                exit;
        }
于 2015-02-22T12:02:23.233 回答