JavaScript:Scriptから表示させると化ける文字 199903.01

JavaScriptから文字を表示させる場合に、一部の文字だけが文字化けする現象が起きます。日本語の文字コードをJavaScriptが真面目に解釈していないのが原因で、HTML本文やステータスバー、アラートなどで発生します。ふざけてますね。
JavaScriptが同居していても、HTMLソースにじかに書き込んである場合には大丈夫です。あくまで<script>〜</script>タグ内の問題。閲覧者のブラウザのバージョンに依存しますので、自分の環境でちゃんと見えても関係ありません(-.-;)

さて、いくらブーイングしても文字化けは直らないので、スクリプトの書き手が回避手段を取るしかありません。
今回の文字化けは、シフトJISコードの後半が"5C"の文字で発生します。次の字を巻き込んで化けます。文字列の末尾にあった場合、最悪ではJavaScriptエラーを起こして止まってしまいます。
回避方法は次の通り。

しょっちゅう出てきそうでとりわけ危険な文字はこれだけあります。テロップを流そうとしている場合等は注意しましょう。

出現頻度が特に高い文字
ソ・十・表
よく使う文字
噂・欺・圭・構・申・貼・能・暴・予

Scriptで回避する方法もありますが、長くなりそうな気配なので、作るかどうか考慮中。最終更新日Scriptの二の舞は嫌(;_;)


※文字化け見本のうち、カタカナは実際には1byteのいわゆる半角カナ。〓は表示できない文字

Shift_JIS 文字 備考
815C ダッシュ。長音(ー)でもマイナス(−)でも罫線(─)でも漢数字(一)でもない。
コード表で長音(ー)とハイフン(‐)の間にある字
835C 頻出字!要注意。片仮名のソ
845C Ы ロシア文字
865C (Mac依存) 機種依存文字、Mac上でギガバイト(GB)。そもそも使わないように。
875C (Win依存) 機種依存文字、Win上でローマ数字の9(IX)。そもそも使わないように。
895C  
8A5C 海里を1文字で書いた字。地上のマイルは哩
8B5C  
8C5C 人名として要注意。「圭子」→「月q」(^^;)
8D5C 「構成」→「告ヤ」
8E5C  
8F5C 頻出字!要注意。漢数字の十
905C 「申し」→「垂オ」
915C 曽と異体字。「曾祖父母」→「荘c父母」
925C 「瓢箪から駒」→「瓢窒ウら駒」
935C 「貼付」→「燈t」
945C 「能力」→「迫ヘ」
955C 頻出字!要注意。「表示」→「侮ヲ」
965C 「暴風雨」→「抹莱J」「暴力」→「沫ヘ」
975C 頻出字!要注意。「予定」→「嵐〓」、「予想」→「卵z」
985C 「元禄時代」→「元〓梠〓」
995C 兎と異体字。免(免許)ではない
9A5C 「喀血」→「嚮〓」
9B5C  
9C5C  
9D5C  
9E5C 栃ではない
9F5C  
E05C  
E15C あざ
E25C 乗(乗る)ではない
E35C  
E45C 「臀部」→「苺〓」
E55C  
E65C  
E75C 体の旧字
E85C 刀の"つば"
E95C 「饅頭」→「體ェ」食いしん坊は要注意(^^;)
EA5C  
これ以降の文字はすべて機種依存のため、そもそも使ってはいけません。

なんでこんなにあるのだ。いや原因は解ってますけど。