我有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字符串如下:
수진수진수진수진수진수진수진수진수
答案 0 :(得分:2)
为什么不简单地使用new String(sd, "UTF-8")
,它会返回你的角色。在我的机器上工作,结果:수진수진수진수진수진수진수진수진수
答案 1 :(得分:0)
X
中的"%02X".format(sd(i) & 0xff)
指定大写十六进制。尝试%s
获取UTF-8字符串。