mam pewne treści (HTML), który jest zakodowany jako skutek tego JavaScript (od this page) i wysyłane do mojej aplikacji szyn:ruby / rails równoważne javascript decodeURIComponent?
function encode_utf8_b64(string) {
return window.btoa(unescape(encodeURIComponent(string)));
}
The odpowiadać js kod aby otrzymać go z powrotem do oryginału jest taka:
function decode_utf8_b64(string) {
return decodeURIComponent(escape(window.atob(string)));
}
Moje pytanie brzmi, czy istnieje odpowiednik w rubinach decodeURIComponent()? Do tej pory mam to, że staje się ona częścią drogi wyjścia, ale brakuje mi ostatni etap decodeURIComponent:
CGI::escape(Base64.decode64(string))
thx, zaktualizowałem odpowiedź :) – olistik
dzięki - gdy stosuję URI.unescape lub URI.decode, pojawia się błąd "nieprawidłowy bajt sekwencji w UTF-8". Wydaje się, że wyjście CGI :: escape() to US-ASCII. Kiedy próbowałem użyć Iconv, aby przekonwertować ciąg znaków na UTF-8 przed zastosowaniem URI.unescape, przestał on wyrzucać błąd, ale wydawał się po prostu usunąć jeden z etapów deencoding, więc wynik był nadal bałagan. Jakieś wskazówki? A może to jest osobny problem. – bobfet1