为了账号安全,请及时绑定邮箱和手机立即绑定

什么是字符编码?我为什么要费心于它?

什么是字符编码?我为什么要费心于它?

蓝山帝景 2019-06-19 14:40:27
什么是字符编码?我为什么要费心于它?我对字符编码.什么是Unicode,GBK等等?编程语言是如何使用它们的?我需要费心去了解他们吗?是否有一种更简单或更快的编程方法,而不需要自己去使用它们呢?
查看完整描述

3 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

(请注意,我用这些术语中的一些松散/通俗地解释了一个更简单的解释,但仍然触及了关键点。)

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

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

因此,必须有描述如何将字符集中的每个字符转换为字节序列的映射。有些字符可能映射到单个字节,但其他字符则必须映射到多个字节。

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

对于Unicode,在很高的级别上,Unicode试图为每个字符分配一个唯一的数字。显然,这个数字必须比字节宽一些,因为有超过256个字符:)Java使用Unicode的一个版本,其中每个字符都被分配一个16位值(这就是为什么Java字符有16位宽,整数值从0到65535)。当您获得Java字符的字节表示时,您必须告诉JVM您想要使用的编码,这样它就知道如何为该字符选择字节序列。


查看完整回答
反对 回复 2019-06-19
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

字符编码是您用来解决为使用与您不同的语言的人编写软件的问题。

你不知道角色是什么,他们是如何排序的。因此,您不知道这种新语言中的字符串在二进制语言中将是什么样子,坦率地说,您并不关心。

你所拥有的是一种将字符串从你说的语言翻译成他们说的语言的方法(比如翻译)。现在,您需要一个能够以二进制语言表示这两种语言而没有冲突的系统。编码就是那个系统。

它允许您编写软件,而不管二进制语言的表示方式如何。


查看完整回答
反对 回复 2019-06-19
  • 3 回答
  • 0 关注
  • 523 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信