マルチバイト文字列のエスケープ方法色々

色々教えて貰いました。

uneval

@anekos uneval('猫')

"\u732B"

" 付きでお得(?)

echo愛

@anekos :echo $("猫").utf16 i_love_echo.jsが入っていればできますよ

これは Vimperator のプラグイン前提。
うちでは*1ちょっとおかしかったので、原因をあとで調べたい。

map 文字毎に

javascript:alert(Array.prototype.map.call("猫", function(s){return '\\u'+s.charCodeAt(0).toString(16).toUpperCase()}))

\u732B

Array で返ってくるので join("") でくっつければOK

自分の

JSON を丸ごと処理できないかな、というのもあったので edvakf さんのを書き換えてみた。

Fx 前提だし、こんなんかな。 Array.map("a猫s", function(s)let(c=s.charCodeAt(0))(c>0x7f?'\\u'+c.toString(16).toUpperCase():s)).join('')

*1:teramako さんとこでは問題ないとのこと