万字长文讲解编码知识,看这文就够了!| 原力计划( 七 )


万字长文讲解编码知识,看这文就够了!| 原力计划

文章插图
  • WindowsAPI 的Wide Char 表达是 UTF-16: Unicode (Windows), L"" 表示是转换为 wide char 。
  • Cocoa的NSString 和 Core Foundation 的CFString 内部表达都是 UTF-16,所以其实 OSX 和 IOS 内部处理都用的是 UTF-16 。
  • JAVAString 的内部表达是 UTF-16,所以大量跨平台程序和 Android 程序其实内部也在用 UTF-16 。
  • 大部分的操作系统和 UI framework 的内部字符串表达(内码)都是UTF-16,不过Linux系统内使用的内码是UTF-8 。

万字长文讲解编码知识,看这文就够了!| 原力计划

文章插图
Tip:内码和外码
在计算机科学及相关领域当中,内码指的是“将信息编码后,透过某种方式存储在特定记忆设备时,设备内部的编码形式” 。在不同的系统中,会有不同的内码 。
在以往的英文系统中,内码为ASCII 。在繁体中文系统中,当前常用的内码为大五码 。在简体中文系统中,内码则为国标码 。
为了软件开发方便,如国际化与本地化,现在许多系统会使用Unicode做为内码,常见的操作系统Windows、mac OS X、Linux皆如此 。许多编程语言也采用Unicode为内码,如Java、Python3 。
外码:除了内码,皆是外码 。要注意的是,源代码编译产生的目标代码文件(如果Java可执行文件或class文件)中的编码方式属于外码 。
引用文章:
1、必读,真说清的话得结合上面的维基百科上的说法理解:
https://en.wikipedia.org/wiki/Universal_Coded_Character_Set
https://en.wikipedia.org/wiki/Unicode
https://en.wikipedia.org/wiki/UTF-16
https://en.wikipedia.org/wiki/UTF-32
2、除此之外参考引用了下面三篇文章的一些观点:
http://www.blogjava.net/zhenandaci/archive/2008/12/24/248014.html
https://www.cnblogs.com/malecrab/p/5300503.html
https://blog.51cto.com/polaris/377468
版权声明:本文为CSDN博主「Aledsan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明 。
原文链接:
https://blog.csdn.net/weixin_43465312/article/details/105918985




推荐阅读