Base64解码UTF 8字符并打印它

时间:2016-03-27 07:49:46

标签: scala utf-8 base64

我有UTF8字符,用Base64编码。我正在解码它并试图打印它。但它只能引用它的十六进制值而不是UTF-8字符串。

我尝试过的事情

1:我已经验证了Character是在线解码器,它告诉我我得到的字符串格式正确: https://www.base64decode.org/

2:System.getProperty(“file.encoding”)也是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)

  }

我在这个中缺少什么? 需要的Actruall字符串如下:

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

2 个答案:

答案 0 :(得分:2)

为什么不简单地使用new String(sd, "UTF-8"),它会返回你的角色。在我的机器上工作,结果:수진수진수진수진수진수진수진수진수

答案 1 :(得分:0)

X中的"%02X".format(sd(i) & 0xff)指定大写十六进制。尝试%s获取UTF-8字符串。