UNICODEの制御コードはJavaScriptで展開できない

制御コードは普通ASCIIの00-1F辺りに配置されているが、UNICODEの一般句読点付近に配置されている制御コードにも注意が必要だ。

JSONデータのやり取りでUNICODEの制御文字が入っていると、JavaScriptで文字列を展開することができない。 例えば、2028のLINE SEPARATOR, 2029のPARAGRAPH SEPARATORが混入していると、JavaScriptの文字展開ができずに例外が発生する。 (ただしIEでは問題なく処理できる)

RSS ReaderのWebアプリを実行している関係で、変な文字コードを含んだテキストに遭遇することが間々ある。 たぶん海外のテキストエディタか文字変換ツールを通して変な制御文字が混入するのだろうとみている。

今回はSEPARATORコードしか検証していないが、その他の制御コード(RightToLeftOverwrideとか)もダメな可能性が高い。 本当はJavaScriptエンジンで対応してもらうのが正しいことなんだけれど、仕方なくソフト側で対応することにした。

スポンサーリンク