Wie encode-UTF8-Zeichen in Base64-in JavaScript

Ich habe versucht, wie dies beim Umgang mit Chinesen, aber die Ausgabe ist chaotisch-code verstümmelt:

var a = "你好";
undefined
a
"你好"
a = unescape(encodeURIComponent(a));
"ä½ å¥½"
a
"ä½ å¥½"

im Vergleich zum Umgang mit Englisch:

var a = "Hello";
undefined
a
"Hello"
a = unescape(encodeURIComponent(a));
"Hello"

Hier ist mein ganzer code:

var content = $("div#test").html();
content = unescape(encodeURIComponent( content ));
content = window.btoa(content);
content = "data:image/svg+xml;filename:{{ request.session.access_token.uid }}.svg;base64," + content;

AKTUALISIERT:

Was ich versuche zu tun, ist die Codierung ein generiertes SVG als data-url für Benutzer zum herunterladen. Ich löste dieses problem durch die Konvertierung von SVG-zu-Leinwand (mit CanVG) ersten und nutzen html2canvas zu generieren base64 ... endlich funktioniert es ...

  • Was ist Ihr input und was brauchst du als Ausgabe?
  • wie ist Ihre Ausgabe im Zusammenhang mit dem code?
  • Was meinst du mit "der Ausgang ist chaotisch-code"?
  • siehe developer.mozilla.org/en-US/docs/DOM/window.btoa
  • Deins funktioniert nicht mit chinesischen Zeichen. Durch die Kodierung und Dekodierung von "你好", erhalten Sie "ä½ å¥½", das ist das problem des OP ist.
  • es ist nicht "meins" für den Anfang. Von was ich sehen kann, beide Funktionen auf, die Seite funktioniert gut für den OP-Eingang.
  • Ok. Es ist nicht "deins", aber ich lief einfach in die Konsole und es funktioniert nicht für "你好".
  • Es bedeutet nicht erkennbaren Zeichen, die durch falsche Codierung.
  • Versuchen Integration, und Sie werden sehen, es funktioniert: decodeURIComponent(escape(unescape(encodeURIComponent("東京")))) "東京" dachte sogar das Zwischenergebnis sieht aus wie lustige Charaktere-denn es IST lustig Zeichen.
  • Ich ausführen: Fenster.btoa(decodeURIComponent(escape(unescape(alsterrunde("东京"))))) auf Chrome 24, got error: Fehler: INVALID_CHARACTER_ERR: DOM Exception 5

InformationsquelleAutor jo32 | 2013-01-26
Schreibe einen Kommentar