MOGDB/openGauss與PostgreSQL關於GBK字符集問題

T1YSL發表於2021-12-26

最近,在驗證不同字符集資料型別儲存資料位數的時候發現:
PG12不支援server_encoding=GBK。以及MOGDB/openGauss 2.0.1 build d97c0e8a 雖然支援server_encoding=GBK,但是仍舊存在問題。
開始的時候是想驗證一下PostgreSQL裡不同字符集 varchar varying(5)是不是都能存五個漢字,因此進行了如下測試,
b75048c730221e448df02a418f43085.png
cc7a383ccf07d6207ac610efab14102.png
3c57101282f27affb36d12e572390e3.png

UTF-8字符集時候varchar不加括號的話可插入的值就是變長的

在測試GBK字符集的時候,發現PostgreSQL是不支援server_encoding=GBK的,如下是PG12的官方文件
image.png

然後想到了MOGDB/openGauss這邊,雖然MOGDB/openGauss據說是基於PG九點幾為基礎研發的,但平時使用的時候就發現了他在一些方面做了優化,彌補了PG本身的不足,又進行了如下的測試,
bfb5803b802bb149b933229185b643a.png
發現雖然說opengauss支援server-encoding=GBK,但是漢字的好像不太行。然後去翻了翻原始碼,發現在一塊的註釋上寫著這麼一段話,所以說openGauss資料庫在將GBK更改為資料庫編碼時,並沒有真正考慮需要更改的程式碼的每個方面,所以這塊依舊存在著問題,不知道之後的版本是否會進行優化。
4ab40096f1df63e336d7e250952fa23.png


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990629/viewspace-2849397/,如需轉載,請註明出處,否則將追究法律責任。

相關文章