[Base64] Encoding von String nicht korrekt

Status
Nicht offen für weitere Antworten.

smo

Neues Mitglied
Hallo,

ich möchte die Sonderzeichen einer ldif-Datei für den Import in ein LDAP-Verzeichnis konvertieren. Die Zeichen müssen dazu mit Base64 encoded werden, dazu verwende ich org.apache.commons.codec.binary.Base64:

Code:
private static String encodeSpecialCharsWithBase64(String line)
{
	String encodedLine = null;
	if (line != null)
	{
		int colonPos = line.indexOf(':');
		encodedLine = line.substring(0, colonPos) + ":: ";
		
		String encodeString = line.substring(colonPos+2).trim();
		System.out.println(encodeString);
		
		byte [] encodeBytes = encodeString.getBytes();
		byte [] encodedBytes = Base64.encodeBase64(encodeBytes);
		
		encodedLine += new String(encodedBytes);
		System.out.println(encodedLine);
	}
	return encodedLine;
}

Wenn ich der Methode "mozillaHomeLocalityName: Göttingen" übergebe, erhalte ich als Ausgabe:

Code:
Göttingen
mozillaHomeLocalityName:: R/Z0dGluZ2Vu

Beim Importieren in ldap bekomme ich mit dieser neuen Zeile einen Fehler.
Code:
ldap_add: Invalid syntax (21)
        additional info: mozillaHomeLocalityName: value #0 invalid per syntax
Der Abgleich mit http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/end.htm liefert mir "R8O2dHRpbmdlbg==" als Ergebnis. Mit diesem String funktioniert auch der ldap-Import.

Wo liegt der Fehler in meinem Code?

Danke vorab
smo
 

Murray

Top Contributor
Bei diesem Encoding passiert zweierlei: zunächst wird der (Unicode-)String in ein Byte-Array gewandelt, und dann wird dieses Byte-Array Base-64-codiert.

Das Besipiel unter selfthml liefert die Base64-codierte UTF-8-Repräsentation des Strings. In Deinem Code wird die systemspezifische Default-Codierung verwendet, um vom Unicode-String zum Byte-Array zu kommen. Um hier explizit die UTF-8-Codierung zu verwenden, muss man das angeben:

Code:
byte [] encodeBytes = encodeString.getBytes( "UTF-8");

Damit kommt dann auch das gewünschte Muster "R8O2dHRpbmdlbg==" heraus.
 

Bleiglanz

Gesperrter Benutzer
das ist das Problem

die Frage ist, was LDAP für ein Encoding verwendet, dieses müsste man dann auch beim Codieren verwenden

vermutlich ISO-8859-1 oder sowas
 

Murray

Top Contributor
???:L
Ich hatte den Post so verstanden, dass es mit dem per JavaScript-Beispiel von selfhtml erzeugten UTF-8-String funktioniert hat; insofern sieht es doch so aus, als würde beim LDAP-Import UTF-8 verwendet werden.
 

Bleiglanz

Gesperrter Benutzer
AH ja, genau so wirds sein

@smo ignorier mal den Hinweis mit ISO-8859-1

die neueren Linuxe basieren ja alle schon auf UTF-8, dann gilt das wohl auch für die ldif Dateien
 
G

Guest

Gast
Danke, das war's. Mein Standardzeichensatz war tatsächlich 8859-15 statt UTF8. Nun tut es wie es soll und ich darf Sonderzeichen in meinem ldap bewundern. :)

Grüsse
smo
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C BASE64 encoding von Binärdaten Allgemeine Java-Themen 4
M Problem mit Base64 Encoding Allgemeine Java-Themen 2
A Interpreter-Fehler OutOfMemory Exception mit Base64 decode Allgemeine Java-Themen 3
Airwolf89 Base64 Codierung Allgemeine Java-Themen 7
P MD5 und Base64 Allgemeine Java-Themen 3
J Base64 Kodierung liefert korrupte Dateien Allgemeine Java-Themen 3
S BASE64 DECODIERUNG Allgemeine Java-Themen 6
M Base64 und Steuerzeichen in Java Allgemeine Java-Themen 3
S String Encoding Verständnisproblem Allgemeine Java-Themen 22
X Encoding in Tomcat Allgemeine Java-Themen 2
B Input/Output Encoding ISO->UTF8 Allgemeine Java-Themen 3
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
S Falsches Encoding bei Drag and Drop von Umlauten Allgemeine Java-Themen 16
M Datei wird nicht vollständig geschrieben (FileOutputStream, OutputStreamWriter, Encoding) Allgemeine Java-Themen 6
C Encoding Problem Windows Allgemeine Java-Themen 9
R Encoding FileWriter Allgemeine Java-Themen 1
C Encoding problem Allgemeine Java-Themen 22
M Charset Encoding für Dateinamen Allgemeine Java-Themen 4
I Encoding Problem bei exec und Windows Allgemeine Java-Themen 2
S Encoding-Problem (?) Allgemeine Java-Themen 5
lumo encoding einer text-datei Allgemeine Java-Themen 2
Y CSV Encoding Problem Allgemeine Java-Themen 6
A bufferedReader readline, encoding Allgemeine Java-Themen 5
N Encoding Unicode Textfile Allgemeine Java-Themen 5
S File encoding feststellen Allgemeine Java-Themen 4
S Bestes Text file encoding..? Allgemeine Java-Themen 36
P Textfiles laden - egal welches Encoding Allgemeine Java-Themen 9
J Encoding und Gewinnung von Zeichen aus der Hexa-Darstellung Allgemeine Java-Themen 6
P Textfile Encoding herausfinden Allgemeine Java-Themen 2
P Encoding-Probleme bei Properties-Dateien Allgemeine Java-Themen 5
R Encoding Allgemeine Java-Themen 10
B platform's default character encoding? Allgemeine Java-Themen 10
N Mal wieder char-encoding Probleme Allgemeine Java-Themen 5
M Encoding automatisch erkennen Allgemeine Java-Themen 4
M Standart Encoding des OS ermiteln Allgemeine Java-Themen 4
byte String Encoding Allgemeine Java-Themen 9
S File Encoding im Programm setzen? Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
M String Allgemeine Java-Themen 10
M Suche nach String mit unbekannten characters Allgemeine Java-Themen 53
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
O String in Long Hexerdezimal umwandel Allgemeine Java-Themen 14
N String vergleichen. Allgemeine Java-Themen 27
P String.replace() funktioniert nicht? Allgemeine Java-Themen 3
SaschaMeyer Arbeitet String.split falsch? Allgemeine Java-Themen 4
M Switches ohne String Allgemeine Java-Themen 18
AmsananKING String Iteration Allgemeine Java-Themen 5
S Shuffle String aus if-clause Allgemeine Java-Themen 11
Besset Variablen Ist String = "" + int inordnung? Allgemeine Java-Themen 6
M Map <Long, String> zu Map<String, Long> Allgemeine Java-Themen 9
N Prüfen, ob ein String 2x das selbe Zeichen hat Allgemeine Java-Themen 10
SaftigMelo Bug Fixen von String-spliten Allgemeine Java-Themen 8
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
Kingamadeus2000 Alle mehrfach vorkommenden Buchstaben rekursiv aus einem String entfernen. Allgemeine Java-Themen 6
YohnsonM String - Aufteilung und Nutzung einzelner Chars Allgemeine Java-Themen 7
O Formatierte String ausgabe bei vier Variablen in einer Zeile Allgemeine Java-Themen 1
S String umbenennen: wie? Allgemeine Java-Themen 4
x46 String Format Fehler Allgemeine Java-Themen 2
S ISO 8601 -> getter / setter String Allgemeine Java-Themen 3
L String zu repräsentativen Wert Allgemeine Java-Themen 0
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
L regex ganzer string? Allgemeine Java-Themen 2
L Ist ein string ein erlaubter variabel name? Allgemeine Java-Themen 2
Z JNA Cpp-DLL String Verwendung Allgemeine Java-Themen 2
A String auf Zahlen überprüfen Allgemeine Java-Themen 5
N String Array Eingabe Allgemeine Java-Themen 6
MiMa Datum von String zu LocalDateTime Allgemeine Java-Themen 8
W String -> byte[] -> String - Sieht jemand was ich nicht sehe? Allgemeine Java-Themen 10
R char aus String entfernen Allgemeine Java-Themen 10
LimDul Mittels Streams aus Strings A B C den String A, B und C machen Allgemeine Java-Themen 12
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Ini Text aus String parsen Allgemeine Java-Themen 1
T String-Manipulation beim Ablauf in Eclipse und als JAR-File Allgemeine Java-Themen 8
M String lässt sich nicht Zusammenfügen Allgemeine Java-Themen 10
Drachenbauer Wie kann ich das Wort "concrete" in einem String durch ein anderes Wort ersetzen lassen? Allgemeine Java-Themen 5
R Schlüsselworte "Throw new exception" gibt nicht den String als Fehlermeldung aus Allgemeine Java-Themen 2
R Variablen String mit split-Funktion aufteilen Allgemeine Java-Themen 7
F Datei in String-Array einlesen Allgemeine Java-Themen 8
S Marker aus String ermitteln Allgemeine Java-Themen 5
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
M Bei String.format ein Komma statt einem Punkt ausgeben lassen Allgemeine Java-Themen 1
S MSSQL Exception & Connection String Allgemeine Java-Themen 19
B Bei Email: FW / AW... - Hilfe bei String suche Allgemeine Java-Themen 21
J String - Vergleiche Allgemeine Java-Themen 7
K Aus String zwei Jahreszahlen auslesen Allgemeine Java-Themen 18
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
G CSV in String Allgemeine Java-Themen 7
P String-Verschlüsselung - Frage zur Sicherheit Allgemeine Java-Themen 21
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
Xge Replace x Zeichen aus String Allgemeine Java-Themen 2
coolian warum bekomme ich ein string index out of bounds exception Allgemeine Java-Themen 17
F In String 2 Buchstaben vertauschen Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben