3 に答える
それは確かに UTF-8 が別のものとして解釈されているように見えます。
HTML にはデフォルトがありません。転送プロトコル (通常は HTTP) のヘッダーから取得されるか、BOM から、meta
要素から、または XHTML の場合は XML 宣言から取得されます。それらのいずれかがない場合、ユーザーエージェントは推測します。
HTTP のデフォルトは ISO-8859-1 であり、1 つの HTML 仕様でさえ「役に立たないことが証明された」と説明されています [ source ] (ISO-8859- 1 は実際には CP-1252 です)。
したがって。デフォルトは忘れて、常に HTTP ヘッダーとメタ要素を設定してください (ファイルとして保存されている場合)。
そして、常に UTF-8 として実行してください。この日と時代の他のすべては、単なるマゾヒズムの行為です.
!DOCTYPE
は文字エンコーディングを設定しません。要素meta
と (新しく標準化された)charset
属性は設定します。存在しない場合、ブラウザーがエンコーディングをどのように決定するかは完全にはわかりません。
あなたが抱えている問題は、あなたのページがあるエンコーディングで保存され、別のエンコーディングで提供されていることだと思います.
ドキュメントが実際にutf8であり、機能するはずであることを確認<meta charset="utf8"/>
してください。
私はEclipse for PHPが提供するデフォルトを使用していますが、問題はありません。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>