如何在Postgresql数据库中存储注册商标符号(®)和em(-)破折号?

yrdbyhpb  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(2)|浏览(120)

当导入一个包含特殊字符串的csv文件到Postgresql数据库表中的varchar列时,我注意到注册商标符号(®)和em破折号(-)都被存储为。也就是从数据库中导出的内容。
如何让数据库识别/接受/存储®和-符号?
提前感谢您的帮助!
我使用dBeaver中的导入数据向导导入了csv。数据导入“成功”,但®和-符号被存储为“符号”。我希望特殊字符在varchar列中被接受。

to94eoyn

to94eoyn1#

只要数据库编码可以对这些字符进行编码(UTF8几乎总是正确的选择),存储这些字符就没有问题。
您所要做的就是在导入数据时将client_encoding设置为CSV文件的编码。DBeaver似乎不允许您选择CSV文件的编码,因此您应该使用其他工具。如果使用COPY(或psql\copy),则可以添加ENCODING选项来指定输入文件的编码。

wpcxdonn

wpcxdonn2#

https://www.postgresql.org/docs/current/multibyte.html
Postgresql支持各种字符集,包括UTF-8,它应该覆盖所有的碱基。不幸的是,数据库的编码是在initdb期间设置的,默认值取决于您的系统。命令将是:

initdb -E UTF8

该页面文档无法在以后或在每个表的基础上更改它,因此您可能需要重新创建数据库并迁移数据(例如使用pg_dump)。

相关问题