我在try 用有限的varchar(9)保存字符串字时遇到了一些问题.
create database big_text
LOCALE 'en_US.utf8'
ENCODING UTF8
create table big_text(
description VARCHAR(9) not null
)
# OK
insert into big_text (description) values ('sintético')
# I Got error here
insert into big_text (description) values ('sintético')
我已经知道问题是因为一个单词使用'é' -> Latin small letter E with Acute (this case only have 1 codepoint),另一个单词使用'é' -> Latin Small Letter E + Combining Acute Accent Modifier. (this case I have 2 codepoint).
如何在有限的varchar(9)中使用这两种表示来存储相同的单词?有没有一些配置是数据库能够双向理解的?我以为数据库是UTF8就足够了,但还不够.
我很感激任何可以帮助我理解我哪里错了的解释.谢谢!
edit:事实上,我想知道有没有办法让Postgres自动为我正常化.