我正在使用此命令行将大型.sql数据集导入postgresql:
psql -h localhost -U postgres -d postgres -q -f C:\andb\pgrouting\osm2po-5.0.0\dk\dk_2po_4pgr.sql
我在我的数据库中获取该表,但字符串无法显示'æ','ø'和'å'正确。当我查看我的.sql文件时,这些字符正在显示。例如
.sql: "Pærevænget"
postgresql: "Pærevænget"
将.sql导入postgresql时,有没有办法获得正确的字符编码?
(我的数据库中使用其他方法导入的其他表没有这个问题)
感谢您的帮助
答案 0 :(得分:0)
创建新数据库时,postgresql实际上会复制默认提供的数据库template1。
这意味着当您从转储创建数据库时,postgresql将采用template1数据库的编码,除非您告诉他不要,这可能是您的问题。
解决方法是以这种方式创建数据库(将you_db_name替换为数据库的实际名称):
psql -h localhost -U postgres -d template1 -c "CREATE DATABASE your_db_name WITH OWNER postgres ENCODING 'UTF8' TEMPLATE template0"
使用template0可以让你开始使用'处女'数据库并自己设置编码。有了这个,你的数据库将使用最标准的UTF-8编码,并且应该使用给你带来麻烦的字符。 然后,您可以继续进行备份,但不使用postgres数据库,而是使用之前创建的数据库:
psql -h localhost -U postgres -d your_db_name -q -f C:\andb\pgrouting\osm2po-5.0.0\dk\dk_2po_4pgr.sql
希望有所帮助!
编辑:
模板部分的参考:Postgresql templates
您可以使用psql -l
查看数据库列表,包括其编码!