openGauss

开源数据库

openGauss社区官网

开源社区

如何在 MogDB / openGauss 中存储注册商标( ® )字符

eygle2022-04-12如何在 MogDB / openGauss 中存储注册商标( ® )字符

如何在 MogDB / openGauss 中存储注册商标( ® )字符

本文首发于墨天轮:https://www.modb.pro/db/164819

有朋友在 ”云和恩墨大讲堂“ 中提问,如何将 注册商标 ® 字符存入数据库,并能够正确显示。

之前我写过一篇文章:MogDB 对于生僻字的存储和显示:㼆 㱔 䶮 𬎆(王莹) ,其实字符的存储主要就是和字符集相关。

我们来看看 MogDB 是否能够正确存储注册商标这个特殊字符,非常简单,在墨天轮的云市场花上一分钱,就买到一个虚拟机实训环境

omm=# select * from v$version;
                      banner
--------------------------------------------------
 MogDB 2.0.1 build f892ccb7
 compiled at 2021-07-09 16:15:21
 Platform architecture: aarch64-unknown-linux-gnu
(3 rows)

omm=# create table mogdb (cname varchar2(10));
CREATE TABLE
omm=# insert into mogdb values('®');
INSERT 0 1
omm=# select * from mogdb;
 cname
-------
 ®
(1 row)

数据库使用的试验环境缺省字符集 UTF8

omm=# show server_encoding;
 server_encoding
-----------------
 UTF8
(1 row)omm=# select * from v$nls_parameters;
      parameter       |           value            |                                 description
----------------------+----------------------------+------------------------------------------------------------------------------
 lc_collate           | en_US.UTF-8                | Shows the collation order locale.
 lc_ctype             | en_US.UTF-8                | Shows the character classification and case conversion locale.
 lc_messages          | en_US.UTF-8                | Sets the language in which messages are displayed.
 lc_monetary          | en_US.UTF-8                | Sets the locale for formatting monetary amounts.
 lc_numeric           | en_US.UTF-8                | Sets the locale for formatting numbers.
 lc_time              | en_US.UTF-8                | Sets the locale for formatting date and time values.
 nls_timestamp_format | DD-Mon-YYYY HH:MI:SS.FF AM | defines the default timestamp format to use with the TO_TIMESTAMP functions.
 NLS_CHARACTERSET     | UTF8                       | Database/Server encoding

通过如上测试,可以看到 ® 被正确显示,测试版本为 MogDB 2.0.1 。