JavaScript の国際文字
-
09-06-2019 - |
質問
私は、XML でサーバーからブラウザーにデータを転送する Web アプリケーションに取り組んでいます。
私はデンマーク人なので、登場人物に関してすぐに問題に遭遇します æøå
.
HTML では、 "æøå"
のために æøå
.
ただし、文字が JavaScript を通過するとすぐに、次のようなブラック ボックスが表示されます。 "?"
使用するときにそれらの中で æøå
, 、 そして "æøå"
そのまま印刷されます。
必ずutf-8に設定しましたが、あまり役に立ちません。
理想的には、(当然ですが) あらゆる特殊文字でも機能するようにしたいと考えています。
動作しない例を以下に示します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" charset="utf-8">
alert("æøå");
alert("æøå");
</script>
</head>
<body>
</body>
</html>
私の何が間違っているのでしょうか?
わかりました、Grapefrukts の回答のおかげで、機能するようになりました。
実際には、MySQL サーバーからのデータに必要でした。ファイルを UTF-8 エンコードで保存すると静的コンテンツの問題のみが解決されるため、PHP を使用して取得した MySQL サーバーからの文字列に対する解決策を含めることにします。
utf8_encode($MyStringHere)
解決
ヘッダーに UTF-8 を指定するだけでは十分ではありません。ファイルを UTF-8 として保存していないはずです。ある程度高度なテキスト エディタには、このオプションがあります。それを試してみてください、きっとうまくいくでしょう!
他のヒント
応答エンコーディングを設定できない場合は、次を使用できます。 \u
これらの文字を表示するには、JavaScript 文字列リテラル内のエスケープ シーケンスを使用します。
alert("\u00e6\u00f8\u00e5")
も使用できます String.fromCharCode()
数値エンティティから文字を出力します。
例えば String.fromCharCode( 8226 )
箇条書き文字を作成します。
最初の文字では「æøå」が表示され、次の文字ではジャンク文字がいくつか表示されます。JavaScript が壊れていない可能性があります (または 文字化け)文字は表示されていますが、警告ダイアログではシステムのデフォルトのフォントが使用されており、そのフォントでは文字を表示できませんか?
タイ語ではこのようなコードを使用します。大丈夫だよ。
$message
は私のPHP変数です。
echo("<html><head><meta charset='utf-8'></head><body><script type='text/javascript'>alert('" . $message . "');</script></body></html>");
これがお役に立てば幸いです。ありがとう。
(システムが「十分な評判がありません」と表示したため、私が行った操作の画像を投稿することはできません。そのため、画像をここに残します。 http://goo.gl/9P3DtI ご迷惑をおかけして申し訳ございません。)
私の弱い英語でごめんなさい。
これは私にとって期待どおりに機能します:
alert("æøå");
...文字列「æøå」を含むアラートを作成します。
alert("æøå");
...非 ASCII 文字を使用してアラートを作成します。
Javascript は utf-8 で非常にクリーンであり、邪魔になることがほとんどありません。
おそらく、これを ISO-8859-1 として機能する Web サーバーに置いているのでしょうか?Apache を使用している場合は、Apache 構成ファイル (またはオーバーライドできる場合は .httaccess) に次の行があるはずです。
AddCharset utf-8 .js
(注記:アンパサンドをエスケープするように編集されました...そうでなければ意味がありません。)