web-dev-qa-db-ja.com

グローバルなUTFエンコーディング、正しい方法

すべてのWebファイルでUTF-8エンコーディングを使用する正しい方法は何ですか

すべてのファイル(CSSおよびJSを含む)はUTF-8エンコードで作成および保存されます

PHPでは、メインページの上部に文字セットを設定します(このページには他のすべてが含まれます)。

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

同じページにこのhtmlメタタグがあります。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

次に、最初の行にこれがある外部cssファイルにスタブリングしました:

@charset "UTF-8";

そして今、私はすべてのCSS/JSファイル内で文字セットを設定する必要がありますか?

および/またはメタタグでcharset = utf-8で各ファイルを提供する必要がありますか?更新:リンクされたリソースの文字エンコード(charset = "utf-8")は廃止されました

1
mowgli

Webサーバーから提供される場合、文字セット宣言の最適な場所は「Content-Type」ヘッダーです。 PHPから提供する場合は、正しく実行しています。 CSSおよびJSのヘッダーを設定することもできます。 CSSとJSがnotでPHP経由で提供されると仮定しますが、静的ファイルとして、次を.htaccessファイルに追加できます。

AddCharset utf-8 .js
AddCharset utf-8 .css

HTMLからJavaScriptファイルにリンクするときに、文字セットをそこに含めることもできます。

<script type="text/javascript" src="/js/file.js" charset="utf-8"></script>

本体の文字セット宣言は、ファイルをダウンロードしてローカルで開くときに最も役立ちます。これらの場合、ヘッダーのメタ情報は失われます。

2

メタ要素設定utf-8の目的は、サーバーがページを提供せず、utf-8ヘッダーを含むデスクトップに保存した場合、ユーザーのブラウザーがページを適切に読み取ることができるようにすることです。 PHPでは、ヘッダーに設定し、実際にページに含めることを冗長にします(繰り返しも行います:))。

@charsetの用途を忘れてしまったが、それを使用したことは一度もない。

ところで、メタタグには終了スラッシュがありません。

0
Rob