2016-03-27 10 views
2

Ich habe UTF8-Zeichen, die in Base64 codiert sind. Ich entziffere es und versuche, es zu drucken. Aber es ist nur der Hex-Wert, aber nicht die UTF-8 String.Base64 Decodierung von UTF 8 Zeichen und Drucken

Things I

versuchte

1: Ich überprüft haben, der Character Online-Decoder, die mir sagen, dass die Zeichenfolge ich ist das richtigen Format erhalten: https://www.base64decode.org/

2: System.getProperty ("file.encoding ") ist auch UTF8

def main(args: Array[String]): Unit = { 
    println("Hello, world!") 

    val sd = Base64.getDecoder.decode("7IiY7KeE7IiY7KeE7IiY7KeE7IiY7KeE7IiY7KeE7IiY7KeE7IiY7KeE7IiY7KeE7IiY") 
    println(System.getProperty("file.encoding")) 
    println(sd.toString()) 

    val sb = new StringBuffer 

    var i:Int=0 

    while(i<sd.length){ 
     sb.append("%02X".format(sd(i) & 0xff)) 

     i=i+1 

    } 
    println(sb) 

    } 

Was fehlt mir in diesem? Actruall Zeichenfolge benötigt wird, wie folgt:

수 진수 진수 진수 진수 진수 진수 진수 진수

Antwort

1

Warum nicht einfach new String(sd, "UTF-8"), die Ihre Zeichen zurückgibt. Arbeitete an meiner Maschine, Ergebnis: 수진수진수진수진수진수진수진수진수

0

Die X in "%02X".format(sd(i) & 0xff) spezifiziert obere Gehäuse hexadezimal. Versuchen Sie %s, um die UTF-8-Zeichenfolge zu erhalten.

+0

Hallo, Danke für die Antwort. Ich versuchte es mit sb.append ("% s" .format (sd (i) & 0xff)) Ich werde immer noch nicht benötigt UTF8 messages – vrbilgi

+0

Was bekommen Sie? – kliew

+0

Sein Drucken jedes Zeichen Ascii Wert 236136152236167132236136152236167132236136152236167132236136152236167132236136152236167132236136152236167132236136152236167132236136152236167132236136152 – vrbilgi