2010-05-20 5 views
0

Je veux Unescape la chaîne suivante:Qu'est-ce qu'un équivalent JavaScript unescape utilisant Ruby?

'\u00020\u0002Standard\u00023\u0002Doe John\u000169\u0002\u0010\u0002Lorem\u0002\u0011\u0002Ipsum\u0002\u0014\u0002' 

fonction de unescape Javascript fonctionne bien, mais comment puis-je Unescape en Ruby?

Si je unescape la chaîne ci-dessus, il en résultera "0Standard3Doe John69LoremIpsum".

Répondre

0

Il me semble que vous utilisez Ruby 1.8, donc vous avez un mauvais support d'encodage.

Dans Ruby 1.8, la bibliothèque jcode pouvait aller au here pour trouver des bibliothèques tierces qui vous aideront. Ruby 1.9 a un meilleur support pour l'encodage, en fait C'est l'un des changements majeurs de cette version.

Si vous avez un contrôle total sur votre application, vous pouvez peut-être encoder votre chaîne sans \ u00020 type d'entités utf-8, directement à Sa source. De cette façon, vous éviterez toute analyse syntaxique et CGI.unescapeHTML fonctionnera.

Pour référence et une meilleure compréhension du support Unicode dans la série JEG2 ruby ​​vous donnera tout ce dont vous avez besoin.

+0

Il ne fonctionne pas. – vise

+0

J'ai ajouté de meilleures directions depuis que je pense que vous êtes sur Ruby 1.8. – microspino

0

cela peut aider https://github.com/brianmario/escape_utils

déséchapper

javascript = `curl -s http://code.jquery.com/jquery-1.4.2.js` 
escaped_javascript = EscapeUtils.escape_javascript(javascript) 
EscapeUtils.unescape_javascript(escaped_javascript) == javascript # => true