0

HTML を .html ファイルに保存しようとしていますが、

これは機能しています:

$html_file = "output.html";
$output_string="string with characters like ã or ì";
$fileHandle = fopen($html_file, 'w') or die("file could not be accessed/created");
fwrite($fileHandle, $output_string);
fclose($fileHandle);

output.html ファイルを確認すると、output_string のこれらの特殊文字が正しく読み取られません。

私の HTML ファイルには、文字セット情報を含むタグを含めることができません。これで機能しますが、出力には,またはタグを含める<head>ことができません。<html><head><body>

私は次のようなものを試しました

header('Content-type: text/plain; charset=utf-8');

また、fwrite の前に文字列に対して utf8_encode()を試しましたが、これまでのところ成功していません。

Notepad++ または Netbeans IDE で output.html ファイルを読み取ると、正しい文字が保存されていることが示されます。正しく読み取れないのはブラウザです。

PHP が間違った文字セットでファイルを保存していると確信しています。これらの特殊文字を使用してコンピューターで HTML ファイルを作成すると (文字セットを設定しなくても)、正しく読み取られるからです。

4

4 に答える 4

3

ファイルに BOM (Byte Order Mark) を追加してみてください:

$output_string = "\xEF\xBB\xBF";
$output_string .= "string with characters like ã or ì";
$fileHandle = // ...
于 2012-12-18T12:04:30.640 に答える
1

はい、PHP はファイルを正しく書き込んでいますが、読み取りプログラムのみが文字エンコーディングを認識せず、間違った文字セットでデータを解釈します。正しい文字セットを伝えるメタ情報を含めることができず、ファイル形式自体 (プレーン テキスト) が文字セットを指定する方法を提供しない場合、および読み取りアプリケーションが文字セットを正しく推測できない場合、解決策はありません。

于 2012-12-18T12:03:52.607 に答える
0

このコードの記述に使用するエディタには、文字タイプを「UTF-8」に設定する機能が必要です。

このコードを記述したファイルの文字タイプを設定します。ファイルの文字エンコーディングを下から変更できるエディタを使用しています。使用しているエディターに似たものがあるはずです。

于 2012-12-18T12:04:59.500 に答える
0

php-script-file-encoding (シングルバイトの場合) に関係なく UTF-8 の文字列が必要な場合は、これらの文字の UTF-8 エンコーディングを使用する必要があります。

$output_string = "string with characters like \xC3\xA3 or \xC3\x8C";
于 2012-12-18T12:07:52.010 に答える