当导入一个包含特殊字符串的csv文件到Postgresql数据库表中的varchar列时,我注意到注册商标符号(®)和em破折号(-)都被存储为。也就是从数据库中导出的内容。
如何让数据库识别/接受/存储®和-符号?
提前感谢您的帮助!
我使用dBeaver中的导入数据向导导入了csv。数据导入“成功”,但®和-符号被存储为“符号”。我希望特殊字符在varchar列中被接受。
当导入一个包含特殊字符串的csv文件到Postgresql数据库表中的varchar列时,我注意到注册商标符号(®)和em破折号(-)都被存储为。也就是从数据库中导出的内容。
如何让数据库识别/接受/存储®和-符号?
提前感谢您的帮助!
我使用dBeaver中的导入数据向导导入了csv。数据导入“成功”,但®和-符号被存储为“符号”。我希望特殊字符在varchar列中被接受。
2条答案
按热度按时间to94eoyn1#
只要数据库编码可以对这些字符进行编码(
UTF8
几乎总是正确的选择),存储这些字符就没有问题。您所要做的就是在导入数据时将
client_encoding
设置为CSV文件的编码。DBeaver似乎不允许您选择CSV文件的编码,因此您应该使用其他工具。如果使用COPY
(或psql
的\copy
),则可以添加ENCODING
选项来指定输入文件的编码。wpcxdonn2#
https://www.postgresql.org/docs/current/multibyte.html
Postgresql支持各种字符集,包括UTF-8,它应该覆盖所有的碱基。不幸的是,数据库的编码是在
initdb
期间设置的,默认值取决于您的系统。命令将是:该页面文档无法在以后或在每个表的基础上更改它,因此您可能需要重新创建数据库并迁移数据(例如使用pg_dump)。