PHP 无法处理带有 Unicode 字符的文件:当我在浏览器上访问testSite/главная.php时,它会抛出此错误。
警告:未知:无法打开流:第 0 行的未知中没有此类文件或目录
致命错误:未知:在第 0 行的未知中需要打开失败
但是testSite/главная.html很好。
无论如何我可以解决这个问题,还是我必须使用更好地处理 Unicode 的不同编程语言?
PHP 无法处理带有 Unicode 字符的文件:当我在浏览器上访问testSite/главная.php时,它会抛出此错误。
警告:未知:无法打开流:第 0 行的未知中没有此类文件或目录
致命错误:未知:在第 0 行的未知中需要打开失败
但是testSite/главная.html很好。
无论如何我可以解决这个问题,还是我必须使用更好地处理 Unicode 的不同编程语言?
打开一个带有unicode文件名的php文件不是一件php
事情,而是取决于底层操作系统。只要操作系统支持 unicode 文件名,它就可以工作。
在我的 debian 挤压上,这根本不是问题,Windows 7(运行 netbeans 的地方)创建一个名为的文件главная.php
没有问题:
include 'главная.php';
在我看来,您的网络服务器对 URI 使用 win-1252 编码。尝试在您的 apache/nginx/whatever 配置中设置 utf-8。如果 unicode 名称仅在 require()/include() 上下文中使用,您还可以使用 iconv()/mb_convert_encoding() 转换编码。
也许它有效:
mb_internal_encoding('UTF-8');
ini_set('default_charset', 'UTF-8');
在 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;
}