有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 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. # 2 楼答案

    java中的字符串已经是unicode表示形式。当你调用其中一个getBytes方法时,你会得到一个特定编码的编码表示(作为字节,因此是二进制值),在你的例子中是ISO-8859-15。如果你想将这个字节数组转换回unicode字符串,你可以像你一样,通过一个接受字节数组的字符串构造器来实现,但是你必须使用与最初生成字节数组的编码完全相同的编码。只有这样,才能将其转换回unicode字符串(该字符串没有编码,也不需要编码)

    请注意无编码方法,包括字符串构造函数和getBytes方法,因为它们使用运行代码的平台的默认编码,这可能不是您想要实现的