電子書籍の厳選無料作品が豊富!

javascriptのアラートの中で、台湾の注音符号を現したいのですが、文字化けしてしまいます。どのようにすればよいでしょうか?

アラートの中を alert('ㄅㄉˇˋㄓˊ˙ㄚㄞㄢㄦ'); このようにしたいのですが、さくらエデッタをつかって、注音符号を打ち込むと、 このように文字化けしてしまいます。 alert('11ヌヒ1ハル11"1&1'); 

保存は、urf-8で改行コードなし、bomなしで保存しています。


<!DOCTYPE html>
<html lang="jp">
<head>
</head>
<body>
<script>
alert('11ヌヒ1ハル11"1&1');
</script>
</body>
</html>

質問者からの補足コメント

  • つらい・・・

    あと転記しわすれましたが、
    <meta charset="utf-8">はつけてあります。

      補足日時:2017/07/15 18:11
  • つらい・・・

    それと、WinSCPでアクセスしてサーバー側で、編集すると、上手くいきます。ローカルでは無理なんですけど。なんでなんでしょうか?

    また、サーバー側で、うまくいったファイルをローカルにコピーして確認しても、アラートには、ちゃんと文字が表示されます。 ただ、そのファイルを開けると、アラートに入れた文字列が文字化けしています。下記のように

    <script>
    alert('繖・чヒ・九・ヒ翰吶・繖槭┐繖ヲ');
    </script> 

    しかし、ブラウザではしっかり表示されるので、このあたりが良く分かりません。

      補足日時:2017/07/15 18:17

A 回答 (1件)

原因.


エディタが内部的に Shift_JIS しか扱えない古いタイプなので、
UTF-8 形式で保存しても Shift_JIS で扱えない文字が化ける。

対策1.
内部的に Unicode で扱えるエディタを使う。
最近のサクラエディタなら Unicode 対応しているので、ソフト更新をご検討ください。

対策2.
JavaScript の文字リテラルには、文字を Unicode コードで記載するエスケープシークエンスがあるので、
文字化けする可能性のあるものはエスケープしてしまう。
例) "ㄅㄉˇˋㄓˊ˙ㄚㄞㄢㄦ" → "\u3105\u3109\u02c7\u02cb\u3113\u02ca\u02d9\u311a\u311e\u3122\u3126"
    • good
    • 1
この回答へのお礼

ありがとうございます。文字関連について、無知でして、ともて勉強になります。感謝します。

お礼日時:2017/07/16 14:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!