JavaScript→Rubyに渡す文字列のエンコードではまったのでメモ。 結論 JavaScriptでencodeURIComponent()でURIエンコード RubyのCGI#unescape()でデコード すると上手く動きそう。 JavaScriptでURIエンコード JavaScriptには、文字列をURIエンコードする関数が3つあり、それぞれ動作が違います。 escape() 最初のJavaScriptの仕様で用意されていた関数。 完全なURIエンコードではない。またブラウザによって動作が違ったりするらしい。 encodeURI() ECMA-262 3rd Editionで追加された関数。旧ブラウザでは未実装なので注意。 アルファベット, 10進数字, -_.!~*'()# をエスケープする。 encodeURIComponent() こちらもECMA-262 3rd Edi