点其他编码而不是UTF-8

时间:2015-06-12 12:00:34

标签: java string encoding utf-8

我已经使用各种编程语言Game很长一段时间了,我没有遇到需要使用除String之外的任何其他编码的情况

问题可能会像基于意见一样,但我不明白为什么其他编码应该可用。

它不会让每个人的生活(特别是程序员)更容易只有一个标准吗?

我以UTF-8为例:

可以在此处找到一组当前可用的Java编码:

https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html

2 个答案:

答案 0 :(得分:1)

UTF-8: Advantages and disadvantages

典型的论点是:

  

亚洲语言有更多的字符,需要超大   为他们的语言编码。

然而,在我看来,优点超过了缺点:

  1. UTF-8,由于与ASCII
  2. 的兼容性,通常功能更强大
  3. 它是Unicode的事实
  4. 其他UTF-16/32不是固定长度的
  5. 其他非unicode非常复杂
  6. 我想看看这里:Why don't people use other encodings

答案 1 :(得分:1)

java中的字符串在内部表示为UTF-16,当您构建String时,您不必告诉要使用哪种编码作为内部表示(但如果要从数组构建String,则必须传递编码)字节)。

您提供的链接显示可用于读取和写入操作的编码;如果要在默认编码为UTF-8的平台上正确读取ISO-8859-1中编码的文本文件,则必须指定正确的编码,并且您的语言(在本例中为java)必须能够自动转换为编码形式到另一个。

Java管理很多编码和从一个到另一个的转换,但在内部它将字符串表示为UTF-16,但你不必担心;你只需要在将字符串转换为字节序列时指定编码,反之亦然。