【发布时间】:2023-03-24 12:20:01
【问题描述】:
我有一个使用 UTF-8 编码的数据库设置。尝试将表复制到 csv,其中文件名具有特殊字符会将文件名错误地写入磁盘。
在 Windows 10 localhost PostgreSQL 安装上:
copy
(select 'tønder')
to 'C:\temp\Sønderborg.csv' (FORMAT CSV, HEADER TRUE, DELIMITER ';', ENCODING 'UTF8');
将 csv 文件命名为:Sønderborg.csv 而不是 Sønderborg.csv。
两者
SHOW CLIENT ENCODING;
SHOW SERVER_ENCODING;
返回 UTF8
如何控制 csv 文件名编码? csv里面的编码可以写Tønder!
更新
我已经从 pgAdmin、DataGrip 和 psql 控制台运行了 copy 命令。 DataGrip 使用 JDBC 并且只会处理 UTF8。所有三个应用程序都以错误的编码写入 csv 文件名。唯一不同的是psql控制台说客户端编码是WIN1252。
【问题讨论】:
-
你用什么程序来运行
copy命令? -
我用运行复制命令的程序更新了问题
标签: postgresql csv encoding