Ich muss ein String zu Byte-Array mit UTF-8-Codierung codieren. Ich benutze Google Guava, hat Charsets-Klasse bereits definieren Charset-Instanz für UTF-8-Codierung. Ich habe 2 Möglichkeiten zu tun:Java String.getBytes (charsetName) vs String.getBytes (Charset-Objekt)
String.getBytes (charsetName)
try { byte[] bytes = my_input.getBytes ("UTF-8"); } catch (UnsupportedEncodingException ex) { }
String.getBytes (Charset Objekt)
// Charsets.UTF_8 is an instance of Charset byte[] bytes = my_input.getBytes (Charsets.UTF_8);
Meine Frage ist, welche ein Ich sollte verwenden? Sie geben das gleiche Ergebnis zurück. Für Weg 2 - ich muss nicht versuchen/fangen! Ich schaue mir den Java-Quellcode an und sehe, dass 1 und 2 anders implementiert werden.
Wer hat irgendwelche Ideen?
Erhalten Sie gleichwertige Ergebnisse von beiden? Wenn ja, würde ich den letzteren Fall bevorzugen. Wenn nicht, müssen Sie entscheiden, was Sie für richtig halten. – merlin2011
Ja, sie geben das gleiche Ergebnis zurück. Aber mein Anliegen ist, warum sie anders umgesetzt werden? Warum wird Weg Nr. 2 intern nicht aufgerufen? – Loc
@Loc Was lässt Sie denken, dass der erstere das letztere nicht intern nennt?(oder dass sie beide nicht eine andere gemeinsame interne Methode nennen würden?) http://www.docjar.com/html/api/java/lang/String.java.html Zeilen 951 - 980 –