2016-09-15 3 views
2

Ich packe Webpage-Daten (denke ähnliche Problem zu instapaper) und senden es zurück zu einem lokalen Server, nicht über das Web. Beide werden auf der gleichen Maschine sein, aber ich möchte es immer noch etwas sicherer machen.2016 html über einen Server senden

Ich würde derzeit HTML von Webseiten greifen und versuchen, es in eine URI zu kodieren. Hier ist das Problem. Die eingebaute Funktion encodeURI funktioniert nicht richtig, da einige Inhalte in einer HTML-Seite bereits kodiert sind, und einige davon nicht! Wie das HTML selbst. Lassen Sie mich ein Beispiel aus einer (decades old website that still exists) geben.

Dieser Code: "%3Ctitle%3EYou've%20Got%20Mail%3C/title%3E"

Aber ein Teil davon kommt in vorcodierte (vor encodeURI genannt wird):

<title>You've Got Mail</title> Bedürfnisse codiert werden

<noframes> &lt;body bgcolor="#FFFFFF" background="../img/1bgbottom.gif" text="#000000" link="#2100c5" vlink="#2100c5" alink="#bd0031"&gt;

Gibt es eine einfache Möglichkeit, eine HTML-Seite (in allem ist es Hässlichkeit) zu nehmen und es in einem URI zuverlässig zu verschlüsseln?

Antwort

0

Sie suchen nach encodeURIComponent(). Es gibt nie wirklich einen guten Grund (den ich sowieso kenne) für encodeURI().

Sobald Sie encodeURIComponent() verwenden, kann es decodiert werden, wie sie ist, können Sie genau das bekommen, was in gesendet wurde.

Auf einer anderen Anmerkung, ich bin nicht sicher, wo Sie diese Codierung tun, aber wenn Sie planen, Verwenden Sie dies in einer Abfragezeichenfolge, achten Sie darauf, dass begrenzte Begrenzungen für Abfragezeichenfolgen vorhanden sind, normalerweise 4k oder 64k. (Zumindest manchmal können Sie das Limit Server-Seite konfigurieren.)

+0

können Sie nicht nur als Base64 codieren? p.s. Wenn Sie die Länge der Abfragezeichenfolgenlänge mit der GET-Methode erreichen, können Sie immer zu POST wechseln und alle Daten senden. –

+0

@LukasLiesis Sicher, base64 ist ein weiterer Weg, der binäre Kompatibilität bei 33% Overhead garantiert. – Brad