我对字符编码的概念非常困惑。

什么是Unicode,GBK等?编程语言如何使用它们?

我需要打扰他们吗?有没有更简单或更快速的编程方式而不必麻烦自己?

请您参考如下方法:

(请注意,我将其中一些术语宽松地/口语化地使用,以进行更简单的解释,但仍然可以理解要点。)

一个字节只能有256个不同的值,即8位。

由于字符集中有超过256个字符的字符集,因此通常不能简单地说每个字符是一个字节。

因此,必须有描述如何将字符集中的每个字符转换为字节序列的映射。有些字符可能被映射到一个字节,而另一些字符将不得不被映射到多个字节。

这些映射是编码,因为它们告诉您如何将字符编码为字节序列。

对于Unicode而言,在非常高的层次上,Unicode试图为每个字符分配一个唯一的数字。显然,该数字必须大于一个字节,因为有超过256个字符:) Java使用Unicode版本,其中每个字符都被分配了一个16位值(这就是Java字符为16位宽并且具有整数的原因值从0到65535)。当您获得Java字符的字节表示形式时,您必须告诉JVM您要使用的编码,这样它将知道如何为该字符选择字节序列。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!