Bas*_*stl 1 db2 encoding utf-8
UTF-8 编码的 DB2 数据库中的“CHAR(1)”是什么意思?
我可以在 CHAR(1) 列中插入特殊字符(例如,在 UTF-8 中占用 2 个八位字节的字符)吗?
或者 UTF-8 中的 CHAR(1) 是否始终意味着它具有一个字节/八位字节的容量,即在其中插入元音变音会失败?
我阅读了这篇有趣的developerWorks文章,但它对于我的简单问题来说很深入......
这取决于。:)
DB2 的引入code units是为了帮助设计基于字符数而不是字节数的字符串类型列。该CREATE TABLE声明对数据类型进行了概述,并解释了CHAR和VARCHAR。如果使用字符数,DB2 会假设最坏的情况 - 每个字符 4 个字节/八位字节 - 进行长度计算。
数据库配置决定默认情况下是考虑string_units字符数 ( CODEUNITS32) 还是字节数 ( )。SYSTEM
回到您的问题:如果您没有指定任何内容,则将需要 2 个八位字节的特殊字符插入 CHAR(1) 可能会失败。如果指定了 CODEUNITS32,那么就会成功。
| 归档时间: |
|
| 查看次数: |
2252 次 |
| 最近记录: |