2 Stimmen

Wie kann ich eine Zeichenfolge kürzen und später den ursprünglichen Inhalt wiederherstellen?

Ich habe eine wirklich lange Zeichenfolge, die ich in einer URL übergeben muss, sagen wir 10.000 Zeichen. Kennt jemand eine gute Möglichkeit, sie auf unter 2.000 Zeichen zu kürzen und dann auf einem Server irgendwie das Original zurückzubekommen?

Dies ist Objective-C, das mit Ruby spricht, aber das sollte keine Rolle spielen.

5voto

Byron Whitlock Punkte 51063

Können Sie die Daten veröffentlichen? Wenn Sie GET verwenden, beträgt die maximale Länge einer URL etwa 4000 Zeichen. Wenn Sie POST verwenden, gibt es keine Einschränkungen (außer Timeouts, Speicher usw.)

Dieser Artikel spricht über die Erstellung eines Beitrags von objective-c

1voto

Michael Stum Punkte 172055

Sind Sie sicher, dass Sie sie als URL eingeben müssen? Vielleicht wäre POST-Data oder Session besser geeignet? Andernfalls könnten Sie die Zeichenfolge in einer Datenbank speichern und den Schlüssel des eingefügten Datensatzes als URL-Parameter zurückgeben. Wenn dies ein Sicherheitsproblem ist (da Leute die Zahl einfach ändern können, wenn es sich um einen Integer-Schlüssel handelt), könnten Sie eine UUID als Schlüssel erstellen.

1voto

Buggabill Punkte 13356

Speichern Sie sie in einer Datenbank und geben Sie dann einfach die ID des Strings in der URL an.

0voto

John Millikin Punkte 190278

Sie können versuchen, es durch Base64 . Wenn die Zeichenkette garantiert nur eine Teilmenge möglicher Zeichen enthält - z. B. [a-zA-Z0-9] - kann sie noch weiter verkürzt werden, indem diese in eindeutige Ordnungszahlen umgewandelt und eine höhere Basiscodierung verwendet wird.

Aber es wäre wahrscheinlich einfacher, einfach POST zu verwenden.

0voto

Daniel Brückner Punkte 57561

Nun, komprimieren Sie es und Base64 das Ergebnis verschlüsseln. Wenn die Zeichenfolge ein sehr spezifisches Format hat, könnte eine benutzerdefinierte Kodierung sogar eine bessere Komprimierung ergeben. Können Sie ein Beispiel nennen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X