回答

收藏

如何在Windows上的PostgreSQL中使用UTF-8归类创建数据库?

技术问答 技术问答 292 人阅读 | 0 人回复 | 2023-09-14

我正在Windows上为Bitbucket Server配置PostgreSQL0 a3 X( C- f% g* v  o% q
db。在官方指南中说:2 U# Y: k3 i& Q& `9 \; c

. @/ S* G  E/ W必须将数据库配置为使用UTF-8字符集。
- c$ \; G$ I, `: i  Z9 ^' s

) r% ~& U' S. p9 O9 G+ i并不是严格说您必须将排序规则设置为UTF-8,但是建议使用其他Atlassian产品,因此我认为Bitbucket
* f5 D1 _' N: A1 Z6 X  I  mServer的情况也是如此。来自Confluence文档的示例:! E' b9 M% g3 A4 g$ J

5 p! x. F: v1 J字符编码必须设置为utf8编码。* U* H6 @3 w" C
排序规则也必须设置为utf8。已知其他排序规则(例如“ C”)会导致Confluence出现问题。# i* T/ J" e# ]; y( b* X
! T8 O8 @( e) E6 M
# v" V4 Q* j3 E% M: @( J8 N3 t

* D$ ?# G/ _+ p/ l/ Y这就是我现在所拥有的,问题是它将归类设置为English_United States.1252:2 |6 H9 k  [" o/ g, N* ~
CREATE DATABASE test( E% {$ `( k' G# K* B
WITH OWNER "postgres"
$ H8 \$ `  ]8 {# R5 J, gENCODING 'UTF8'( R0 r# @8 X& F& F
LC_COLLATE = 'american_usa'
, F' n; y5 ^+ [6 W% Z; z9 gLC_CTYPE = 'american_usa', c0 a1 n# S0 t1 Y$ \2 Y: c+ f
TEMPLATE template0;
/ E0 z# M$ q+ R7 a* _是否确实需要将排序规则设置为UTF-8?如果是,该怎么办?3 d+ }* E  u5 E
                ' V' \- G' p( k) I
解决方案:* j: h; T5 J' E% Y
               
  b( M9 g2 g, T6 W  A* p( }$ k( K6 S& i7 v% s9 u% t
& u* v$ Z, Y2 o, p
                没有UTF8归类。UTF8是一种将字符编码为数字的方法,即所谓的 encoding 。排序规则定义了字符(和合成)的排序方式。
' w4 x4 a; r! ?" g( }虽然您必须选择与数据库编码和UNIX上的PostgreSQL匹配的归类,但Windows不需要。也许您正在阅读的文档针对UNIX。
5 O, H; a. P. ~2 F" @您应该让编写软件的人告诉您要使用哪种排序规则。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则