以utf8为例,utf8是一个变长编码标准,可以以1~4个字节表示一个字符,而中文占3个字节,ascII字符占1个字节。
那么为什么我们在java里面可以用一个char来表示一个中文呢?
因为java是以unicode作为编码方式的。unicode是一个定长的编码标准,每个字符都是2个字节,也就是1个char类型的空间。
在编译时会把utf8的中文字符转换成对应的unicode来进行传输运算。
参考:http://www.zhihu.com/question/23374078
以utf8为例,utf8是一个变长编码标准,可以以1~4个字节表示一个字符,而中文占3个字节,ascII字符占1个字节。
那么为什么我们在java里面可以用一个char来表示一个中文呢?
因为java是以unicode作为编码方式的。unicode是一个定长的编码标准,每个字符都是2个字节,也就是1个char类型的空间。
在编译时会把utf8的中文字符转换成对应的unicode来进行传输运算。
参考:http://www.zhihu.com/question/23374078