1. 为什么会有Unicode这么个存在,为什么需要它?
ASCII码大家都不陌生,每个字符对应0~127其中一个数值。
这里的1Byte和字符是一一对应。
但是呢,ASCII码对应的可选数目有限,只有128个字符。
处理英文字符不成问题,但是中文呢?
中文汉字用什么来表示?
俄文字符用什么来表示?
ASCII是美国人搞的一套符合英文的字符库,当然之前,中国人也搞了一套符合中文的字符库,俄罗斯也不甘落后。
这样一来,1Byte就不够用了,不是1Byte能解决的。
这样一来,具有不同语言的国家都具有自己的一套字符库。各行其是。在本国语言上毫无问题。
但是呢,大家都晓得,互联网是不分国家的,是国际化的,你有一套字符库,我有一套,这就完全乱套。
能不能有一个字符库,包含所有语言的字符。
就在刹那间,Unicode横空出世。
理解Unicode之前先弄清楚两个概念:
(1) 位组:也就是字节
(2)代码值
Unicode呢,用代码值(code point)和字符一一对应。
Unicode为每一个字符提供一个唯一的数值,可以是任意平台,任意程序,任意语言。
比如,字符k的代码点是U+006B。
看例子
unicodeTest.pl:
print "I need to work on my résumé";
就一条输出语句,直接在源代码中使用Unicode字符
问题来了:
(1)编辑器是如何编码存储的? UTF-8? ISO-8859?
(2)使用该源程序的人如何读取?