JSで@などの文字参照を含む文字列が元の文字に戻る問題

JavaScript のイメージ。

JavaScript で文字列を扱うとき、その文字列に @ などの記号の文字参照を含めることがあります。 @ の文字参照は @ です。

しかしながら文字列に @ を設定しても、@ が出力されるなどの問題が限定的に起こる場合があります。 問題を解決するには、出力する文字参照の文字列を、`&#` + `64;` のように分割します。

この問題を Windows / Chrome 46.0.2490.80 m で確認しています。 私の場合は prompt によって文字列を出力するとき、この問題が起こりました。

Reference

メールアドレスなどの一部を文字参照に変換するツール」を実装するにあたりこの問題に遭遇し、 解決をあきらめて既存の同じようなプログラムを検索とした際に、このページで解説した解決策を発見しました。

メールアドレスをエンコードするブックマークレット