
JavaScriptファイルをSJIS、EUC、UTF8を統一したために
スクリプト上で
var str = "あいうえー";
をUTF16で
var str = "\u3042\u3044\u3046\u3048\u30fc";
このように変換をしましたが
alert("\u3402");とかですと、文字化けはしないのですが、
innerhtml="\u3402";
のようにやると、文字化けをしてしまいます。
どのようにしたら対処できますでしょうか?
もし、対処方法なければ、仕方ないので、コード判別をできるようにと考えています。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>>JavaScriptファイルをSJIS、EUC、UTF8を統一したためにスクリプト上で
文字コードを統一するだけなら、エスケープシーケンスに変換するのではなく、ファイルの文字コードを変更すればいいのでは?
(以下引用)
EUCコードのHTMLに対し、JavaScript用エンコードにされたUTF16で
(イメージで確認してください)
innerhtml=
"<table><tr><td>@" + username + "のツィート</td></tr>"+
"<table><tr><td>" + (JSONより変換したHTML) + "</td></tr>" +
"</table>"
の部分の、「のツィート」 を JavaScript用エンコードにして化けてしまうようです。
HTMLがUTF8ですと、正常に表示されます。
(引用終わり)
JavaScriptファイルの文字コードはUTF-8、HTMLファイルはEUC-JPになっているということですか?
もしかして、外部から取得したデータではなく、そのJSファイルの中に「のツィート」という文字がそのまま書かれているのですか?
もしそうだとしたら、文字化けするのは当たり前ですが...。
HTMLやJavaScriptファイルの文字コードは一つに統一した方が扱いやすいと思います。
文字コードを同一にできないのならば、
<script src="ソース" charset="JSファイルの文字コード"></script>
というように、HTMLで文字コードを指定することもできます。
この回答への補足
ありがとうございます。
JavaScriptファイルは、日本語部分をUTF16にエンコードしてから
エスケープしているために、
SJISでもEUCでもUTF8でもない ASCIIの状態になっています。
また、twitter APIからJSONを手動で取得して、何も変換せずURLを js ファイルにしてやると
これも文字化けがしません。
(同じスクリプト上で、http fetchを単純に行っています)
No.4
- 回答日時:
No1です。
先ほど書いた文の意味がわかりませんか?
>とにかく、文字化けをするというコードを書いてもらわないと、アドバイスしようが無いです。
「文字化けをするというコードを書いてください。」って、他に言い換えようが無いので、もう一度同じことを書きました。
>それが、alertでやると、文字化けをしません。
「普通にやると化けるはずは無いので。 」と書いたとおりです。化けないのが正常です。
No.2
- 回答日時:
> var str = "\u3042\u3044\u3046\u3048\u30fc";
これは、JavaScriptのUnicodeエスケープシーケンスであってUTF16ではないです。
ブラウザがJavaScriptの文字コードを正しく認識できているなら
その文字コードで普通に書けば良くて、
Unicodeエスケープシーケンスを使う必要は特にないはずですが?
(使用している文字コードで表現できない文字を文字列リテラルに含めたいならともかく。)
ASCII互換のどの文字コードと認識されても使えるように、ASCIIの範囲内の文字しか使わないって言う配慮なのかなあ。
JSONでやりとりするときはUnicodeエスケープシーケンスされてることが多いし、場合によってはそれもありなのかもね。
なお、「あ」のコードポイントはU+3042。
この回答への補足
ありがとうございます。
実際は、旧APIでTwitterからJSONを取得して、それを表題の枠の中に表示するものですが、
その表題が化けてしまいます。
実際のソースは結構複雑になるのですが
例えば・・・
EUCコードのHTMLに対し、JavaScript用エンコードにされたUTF16で
(イメージで確認してください)
innerhtml=
"<table><tr><td>@" + username + "のツィート</td></tr>"+
"<table><tr><td>" + (JSONより変換したHTML) + "</td></tr>" +
"</table>"
の部分の、「のツィート」 を JavaScript用エンコードにして化けてしまうようです。
HTMLがUTF8ですと、正常に表示されます。
#JavaScript用エンコードにしたものは、外部ファイルになります。
JavaScript用エンコードではなく、生の漢字コードを埋め込んだ場合
UTF8にしたものは、UTF8のHTMLで、EUCのものはEUCのHTMLできちんと表示されます。
化けるブラウザは、確認した全ブラウザでなります。(IE/FF/Op/Sa/Chrome)
No.1
- 回答日時:
>のようにやると、文字化けをしてしまいます。
Firefox18.0.1とIE9でやってみたけど化けません。「㐂」という字ですよね?
<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-16" />
</head><body>
<div id="X">
</div>
<script>
var x=document.getElementById("X");
if(x) {
x.innerHTML="\u3402";
}
</script>
</body></html>
この回答への補足
ありがとうございます。
実際は、旧APIでTwitterからJSONを取得して、それを表題の枠の中に表示するものですが、
その表題が化けてしまいます。
実際のソースは結構複雑になるのですが
例えば・・・
EUCコードのHTMLに対し、JavaScript用エンコードにされたUTF16で
(イメージで確認してください)
innerhtml=
"<table><tr><td>@" + username + "のツィート</td></tr>"+
"<table><tr><td>" + (JSONより変換したHTML) + "</td></tr>" +
"</table>"
の部分の、「のツィート」 を JavaScript用エンコードにして化けてしまうようです。
HTMLがUTF8ですと、正常に表示されます。
#JavaScript用エンコードにしたものは、外部ファイルになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) エクセル 表の移動 2 2023/04/05 20:29
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- Android(アンドロイド) 128GB LAZOS マイクロSDカード 1280円 もっと良い商品ある? 4 2023/02/07 19:42
- 数学 (4)のim(T)をu1,u2,u3の線型結合で表せ、という問題がわからないです。回答を見ると私の解 2 2023/05/31 22:14
- ルーター・ネットワーク機器 BuffaloのWI-FI6対応の無線LAN子機 これからもっと性能の高い製品が発売される可能性 2 2023/08/27 22:55
- その他(Microsoft Office) COUNTIF関数の合計不一致について 1 2023/01/19 16:37
- 数学 線形代数の正規直行系についての問題がわからないです。 1 2022/07/16 11:20
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- C言語・C++・C# C# 浮動小数の数値文字列化 1 2022/04/18 15:15
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストエディタvscodeでプロ...
-
一括置換で、すべてが文字化け!
-
HTMLの<a>タグで [テキスト文(....
-
HTMLでどうしても文字化け(エ...
-
テキストファイルで下線を引く
-
HTMLからフォルダを開きたい
-
見れる方・・
-
iPadの標準ブラウザでローカルH...
-
java_run.batがダウンロードで...
-
HTMLページが勝手にダウンロー...
-
Selenium Excel AddInのインス...
-
ドライアイスの持続時間
-
ZIPの拡張子のついたURLがダウ...
-
1つ下の階層のフォルダに相対...
-
サーバー内のフォルダにある写...
-
ツールバーやボタンのないページ
-
HPでツリー表示:初期状態で全...
-
HTMLファイルでラベルをコピー...
-
タイトル表示をインラインフレ...
-
アクオスケータイ4、アクオス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストエディタvscodeでプロ...
-
Dreamweaverでページ全体が文字...
-
エクセルで作成した表のハイパ...
-
テキストエディタ grepの機能...
-
「x-sjis」「Shift_JIS」同じ意...
-
HTMLの<a>タグで [テキスト文(....
-
リソースビューが表示されない(...
-
ホームページを作りたいのです...
-
htmlファイルの表示が真っ白
-
eclipseを使ってweb上に表示さ...
-
Dreamweaverでソースが文字化け...
-
HP作成で…日本語と韓国語表示
-
大切なデータを誤って上書きし...
-
オフラインでのHTMLについて
-
htmlファイルが開けません。
-
EUCファイルの扱い方?
-
HTMLファイルからリンクタグだ...
-
半角カタカナ(csvやtxtデータ...
-
文字コードって結局どれを使うの?
-
SSIでインクルードしたファイル...
おすすめ情報