簡體   English   中英

如何在 Windows 上的 PostgreSQL 中使用 UTF-8 排序規則創建數據庫?

[英]How to create a database with UTF-8 collation in PostgreSQL on Windows?

我正在為 Windows 上的 Bitbucket 服務器配置 PostgreSQL 數據庫。 在官方指南中它說:

必須將數據庫配置為使用 UTF-8 字符集。

它並沒有嚴格說您必須將整理設置為 UTF-8,但是對於其他 Atlassian 產品,建議使用它,因此我認為 Bitbucket Server 的情況也是如此。 Confluence 文檔中的示例:

  • 字符編碼必須設置為utf8編碼。
  • 排序規則也必須設置為 utf8。 已知其他排序規則(例如“C”)會導致 Confluence 出現問題。

這就是我現在所擁有的,問題是它將排序規則設置為English_United States.1252

CREATE DATABASE test
WITH OWNER "postgres"
ENCODING 'UTF8'
LC_COLLATE = 'american_usa'
LC_CTYPE = 'american_usa'
TEMPLATE template0;

是否真的需要將排序規則設置為 UTF-8,如果是,我該怎么做?

假設您嘗試在 Windows 上使用美國語言環境排序順序和字符分類使用 UTF-8 編碼創建 PosgreSQL 數據庫,以下是對原始問題中發布的代碼示例的修改,可用於實現該結果。

CREATE DATABASE "example_db"
WITH OWNER "postgres"
ENCODING 'UTF8'
LC_COLLATE = 'en-US'
LC_CTYPE = 'en-US'
TEMPLATE template0;

終端復制/粘貼的一種襯墊格式:

CREATE DATABASE "example_db" WITH OWNER "postgres" ENCODING 'UTF8' LC_COLLATE = 'en-US' LC_CTYPE = 'en-US' TEMPLATE template0;

對於任何試圖在 Linux 環境(例如 Windows Subsystem for Linux 上的 Ubuntu)中創建類似數據庫的人,您可以執行以下操作(根據特定環境,您可能需要使用'en_US.UTF8'作為語言環境):

CREATE DATABASE "example_db"
WITH OWNER "postgres"
ENCODING 'UTF8'
LC_COLLATE = 'en_US.UTF-8'
LC_CTYPE = 'en_US.UTF-8'
TEMPLATE template0;

終端復制/粘貼的一種襯墊格式:

CREATE DATABASE "example_db" WITH OWNER "postgres" ENCODING 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' TEMPLATE template0;

沒有 UTF8 整理。 UTF8 是一種將字符編碼為數字的方法,即所謂的編碼 排序規則定義了字符(和組合)的排序方式。

雖然您必須選擇與 UNIX 上的 PostgreSQL 數據庫編碼匹配的排序規則,但在 Windows 上則不需要。 也許您正在閱讀的文檔是針對 UNIX 的。

您應該詢問編寫軟件的人告訴您要使用的歸類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM