Encoding DB2UTF-8编码:Umlaut到CHAR(1)?

Encoding DB2UTF-8编码:Umlaut到CHAR(1)?,encoding,utf-8,db2,Encoding,Utf 8,Db2,UTF-8编码的DB2数据库中的“CHAR(1)”是什么意思 我可以在CHAR(1)列中插入一个特殊字符(例如UTF-8中包含2个八位字节的字符)吗 或者UTF-8中的CHAR(1)是否总是意味着它具有一个字节/八位字节的容量,即在其中插入Umlaut将失败 我通读了这篇有趣的文章,但对于我的简单问题来说,这篇文章会很深入…视情况而定。:) DB2引入了code单元,以帮助设计基于字符数而非字节数的字符串类型的列。该语句概述了数据类型,并解释了CHAR和VARCHAR。如果使用了字符数,DB2将

UTF-8编码的DB2数据库中的“CHAR(1)”是什么意思

我可以在CHAR(1)列中插入一个特殊字符(例如UTF-8中包含2个八位字节的字符)吗

或者UTF-8中的CHAR(1)是否总是意味着它具有一个字节/八位字节的容量,即在其中插入Umlaut将失败

我通读了这篇有趣的文章,但对于我的简单问题来说,这篇文章会很深入…

视情况而定。:)

DB2引入了
code单元
,以帮助设计基于字符数而非字节数的字符串类型的列。该语句概述了数据类型,并解释了
CHAR
VARCHAR
。如果使用了字符数,DB2将假设最坏的情况——每个字符4字节/八位字节——用于长度计算

数据库配置确定默认情况下是考虑字符数(
code单元32
)还是字节数(
SYSTEM

回到您的问题:如果您没有指定任何内容,那么在CHAR(1)中插入需要2个八位字节的特殊字符可能会失败。如果指定了CODEUNITS32,则它将成功。

视情况而定。:)

DB2引入了
code单元
,以帮助设计基于字符数而非字节数的字符串类型的列。该语句概述了数据类型,并解释了
CHAR
VARCHAR
。如果使用了字符数,DB2将假设最坏的情况——每个字符4字节/八位字节——用于长度计算

数据库配置确定默认情况下是考虑字符数(
code单元32
)还是字节数(
SYSTEM


回到您的问题:如果您没有指定任何内容,那么在CHAR(1)中插入需要2个八位字节的特殊字符可能会失败。如果指定了CODEUNITS32,那么它将成功。

谢谢!这似乎回答了这个问题。引入此功能后,您可以添加信息吗?在文档中,代码单位与v10.5.0一起出现……是的,这是正确的。您可以使用文档中的下拉列表切换到其他版本<代码>字符串单位仅适用于10.5及以上版本。出于好奇:以前是怎么做到的?在CREATE TABLE中修复代码页,使8bit始终足够吗?不,UTF-8和其他Unicode代码页长期以来一直受支持。UTF-8是自IMHO V9.5以来的默认代码页。全球化/i18n需要一些思考和良好的规划…谢谢!这似乎回答了这个问题。引入此功能后,您可以添加信息吗?在文档中,代码单位与v10.5.0一起出现……是的,这是正确的。您可以使用文档中的下拉列表切换到其他版本<代码>字符串单位仅适用于10.5及以上版本。出于好奇:以前是怎么做到的?在CREATE TABLE中修复代码页,使8bit始终足够吗?不,UTF-8和其他Unicode代码页长期以来一直受支持。UTF-8是自IMHO V9.5以来的默认代码页。全球化/i18n需要一些思考和良好的规划。。。