此代码适用于我的虚拟主机,但不适用于我的本地主机。我怎样才能让它在我的本地主机上工作(我使用 Windows)?
文件名是“åäö.html”。
<?php
$src = 'testing';
$file_name = 'åäö.html';
$fopen=fopen($file_name, 'w');
fwrite($fopen, $src);
fclose($fopen);
?>
MS Windows 以字符编码的常见问题而闻名。在您的情况下,您的“网络主机”似乎使用 UTF-8 作为编码,而您的本地 MS-Windows 系统使用 8 位编码。这可能是某种 ISO-8859 编码,但更有可能是不知名的 windows 代码页 1251 或其他几乎但不是真正的 ISO 编码。这似乎很可能,因为您可以看到 3 个 utf 字符在您的 MS-Windows 系统中被“转换”为六个字符。典型用于非 ASCII 字符。
您有以下三种选择:
default_charset
设置。您可以在 Web 服务器 php 解释器使用的 php.ini 文件中找到它。 string
值不是这种情况)到其他编码.顺便说一句:您可以通过使用允许在编码之间轻松切换的文本编辑器来玩一些编码(来回切换)。这有助于了解正在发生的事情。HexEditor 是一个非常有用的工具,可以找出文件中真正存储的内容:-)