百科问答小站 logo
百科问答小站 font logo



计算机中为何不直接使用 UTF-8 编码进行存储而要使用 Unicode 再转换成 UTF-8 ? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

因为utf8编码的字符串长度和字符个数没有固定换算关系,导致排版,排序之类的复杂度上升。

Go语言就是内部用utf8存储,但它也提供rune类型来处理字符问题。


user avatar   Ivony 网友的相关建议: 
      

看错题目了,重新补充在前面。

为什么要用Unicode储存,因为UTF-8是一种专门设计用来传输的编码格式,是将Unicode字符串编码成字节的一种方式。

专门设计用来传输的编码显然不适合直接拿来表达字符串,一是字符串的长度无法预计,二是很难从中截断或者截取字符。



但实际上Windows内部字符串并非真正是Unicode位码储存的,而是以UTF-16编码格式储存的。

这是因为以前以为16位足够了,所以以前就是直接存的Unicode位码,直到现在很多地方还是叫Unicode而不是UTF-16。

谁知道后来Unicode升位了,为了兼容,不能又把所有的字符用32位去存,就只好用UTF-16编码代替,反正对于之前用到的那些字符,用UTF-16编码存都是一样的(低位Unicode字符的Unicode位码和UTF-16是一样的)。




  

相关话题

  名校计算机专业出来的只能当苦逼的程序员吗? 
  法国亿万富翁筹资一亿美元在硅谷建立「免学费」大学启动「42」计划的目的是什么? 
  《燃烧吧!天才程序员》综艺大火!如果你是一名科技从业者,你最想用科技改变生活中的哪些事? 
  Linux 下 “一切皆文件” 思想的本质和好处在哪里?与 Windows 下的文件管理思想有啥差别? 
  现在软件行业已经很成熟,为什么程序员还在没日没夜敲代码搞系统更新? 
  计算机本科应届生年薪 30w40w 真的很普遍吗? 
  机械真的如此不堪吗?我只是普通一本,但是,感觉学长们找的工作都还不错啊,不比同校计算机的差? 
  程序员如何保持技术敏感度? 
  搜索引擎给出完全相同的两个结果,但一个是广告链接,另一个才是正常结果,你会选择哪个呢? 
  编程语言和牛顿定律哪一个对人类的意义更大? 

前一个讨论
该如何评价国外展出中国文物时,网友感谢当年文物被抢才得以保存的言论?
下一个讨论
越南会成为下一个经济奇迹吗?





© 2025-02-05 - tinynew.org. All Rights Reserved.
© 2025-02-05 - tinynew.org. 保留所有权利