[英]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.