ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 编码概念 计算机存放数据只能存放数字,所有的字符都会被转换为不同的数字。 就像一个棋盘一样,不同的字,处于不同的位置,而不同的位置,有不同的数字编号。 > 有的棋盘很小,只能放数字和英文 > 有的大一点,还能放中文 > 有的“足够”大,能够放下世界人民所使用的所有文字和符号 如图所示,英文字符 A 能够放在所有的棋盘里,而且位置都差不多 中文字符, 中文字符 中 能够放在后两种棋盘里,并且位置不一样,而且在小的那个棋盘里,就放不下中文 ![](../images/2481.png) # Java中常见的编码格式 在计算机系统中,ASCII码是最基础的编码格式,8bit存储一个字节数据,能够表示的字符范围为 255。 由于 ASCII 所变现的字符较少,随后就出现了包括 `ISO-8859-1` 、`GB2312`、`GBK`、`GB18030`、`UTF-16`、`UTF-8` 等编码格式。 目前在应用开发中,使用 UTF-8 的编码方式是最常见的,其次为 GBK。 我们在标识符定义中所说的 unicode 字符集就是指的的 UTF 编码方式。 除了 ASCII 码是用一个字节表示数据的,其他都是 2-4 个字节表示。 在文件字节流中读取的 `byte[]` 数据,最后通过 `new String(byte[], charsetName)` 方法构建的对象,第二个参数就是文件的编码方式。(把一个字节数组转化为字符串,如果不显式的指明字节的编码方式,则用系统默认的编码方式)。 在控制台输入chcp命名可以查询到系统目前使用的文字编码方式 936 表示的是 GBK。 ~~~ String rs = new String(data, "GBK"); ~~~