为啥DB2中一个汉字对应char(2) 而在MYSQL中一个汉字对应char(1) DB2和MYSQL都是用啥语言写的啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥DB2中一个汉字对应char(2) 而在MYSQL中一个汉字对应char(1) DB2和MYSQL都是用啥语言写的啊?相关的知识,希望对你有一定的参考价值。

难道DB2是用C语言写的?
据说DB2/Oracle都是用java写的啊?
难道跟安装数据库时候选择编码有关系?

这个取决于建立数据库时采用的CODESET,例如UTF-8一个汉字对应char(3),GBK一个汉字对应char(2) 参考技术A 数据库对于字符编码的规定与它自己用什么语言编写的无任何关系。
这与它提供什么的字符编码有关。

char型变量中能不能存储一个中文汉字,为什么?

在C语言中,char类型占1一个字节,而汉子占2个字节,所以不能存储。

在Java中,char类型占2个字节,而且Java默认采用Unicode编码,一个Unicode码是16位,所以一个Unicode码占两个字
节,Java中无论汉子还是英文字母都是用Unicode编码来表示的。所以,在Java中,char类型变量可以存储一个中文汉字。

以上是关于为啥DB2中一个汉字对应char(2) 而在MYSQL中一个汉字对应char(1) DB2和MYSQL都是用啥语言写的啊?的主要内容,如果未能解决你的问题,请参考以下文章

db2中left()函数和right()函数对应oracle中的substr()函数

db2中left()函数和right()函数对应oracle中的substr()函数

char型变量中能不能存贮一个中文汉字

char型变量中能不能存储一个中文汉字,为什么?

JAVA数据类型中的char类型

java中char可以存储汉字吗?