java将UTF8编码的字符串转换为人类可读的字符串 1 周,1 日 Questions & Answers 14391 如何将任何UTF8字符串转换为可读字符串 比如:在UTF8中是€ 我试着使用Charset,但没用
# 1 楼答案 我认为这里的问题是,假设java字符串是用构造函数中指定的内容编码的<不是在UTF-16中 所以,"Üü?öäABC".getBytes("ISO-8859-15")实际上是将UTF-16字符串转换为ISO-8859-15,然后得到该字符串的字节表示 如果您想在Eclipse控制台中获得人类可读的格式,只需保持原样(在UTF-16中),并调用System.out.println("Üü?öäABC"),因为Eclipse控制台将解码字符串并将其显示为UTF-16
# 2 楼答案 java中的字符串已经是unicode表示形式。当你调用其中一个getBytes方法时,你会得到一个特定编码的编码表示(作为字节,因此是二进制值),在你的例子中是ISO-8859-15。如果你想将这个字节数组转换回unicode字符串,你可以像你一样,通过一个接受字节数组的字符串构造器来实现,但是你必须使用与最初生成字节数组的编码完全相同的编码。只有这样,才能将其转换回unicode字符串(该字符串没有编码,也不需要编码) 请注意无编码方法,包括字符串构造函数和getBytes方法,因为它们使用运行代码的平台的默认编码,这可能不是您想要实现的
# 1 楼答案
我认为这里的问题是,假设java字符串是用构造函数中指定的内容编码的<不是在UTF-16中
所以,
"Üü?öäABC".getBytes("ISO-8859-15")
实际上是将UTF-16字符串转换为ISO-8859-15,然后得到该字符串的字节表示如果您想在Eclipse控制台中获得人类可读的格式,只需保持原样(在UTF-16中),并调用
System.out.println("Üü?öäABC")
,因为Eclipse控制台将解码字符串并将其显示为UTF-16# 2 楼答案
java中的字符串已经是unicode表示形式。当你调用其中一个getBytes方法时,你会得到一个特定编码的编码表示(作为字节,因此是二进制值),在你的例子中是ISO-8859-15。如果你想将这个字节数组转换回unicode字符串,你可以像你一样,通过一个接受字节数组的字符串构造器来实现,但是你必须使用与最初生成字节数组的编码完全相同的编码。只有这样,才能将其转换回unicode字符串(该字符串没有编码,也不需要编码)
请注意无编码方法,包括字符串构造函数和getBytes方法,因为它们使用运行代码的平台的默认编码,这可能不是您想要实现的