このコードはウェブホストでは機能しますが、ローカルホストでは機能しません。ローカルホスト (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 エンコーディングではありません。MS-Windows システム内で 3 つの utf 文字が 6 つの文字に「変換」されていることがわかるため、これは可能性が高いと思われます。非 ASCII 文字の典型です。
次の 3 つのオプションがあります。
default_charset
PHP設定を試してみてください。これは、Web サーバーの php インタープリターが使用する php.ini ファイルにあります。 string
値の場合はそうではありません)。 .ところで:エンコーディングを簡単に切り替えることができるテキストエディタを使用して、エンコーディングを(切り替えから)少しいじることができます。これは、何が起こっているのかを理解するのに役立ちます。HexEditor は、ファイル内に実際に格納されているものを見つけるための非常に便利なツールです :-)