You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下用psql运行SQL脚本出现编码转换错误,如何解决?

PostgreSQL导入数据时WIN1254转UTF8编码错误的解决方法

错误原因

你的SQL文件采用WIN1254编码,其中包含的字节序列0x9e对应的字符在UTF8编码中没有等价映射,且psql默认使用当前系统编码读取文件,和数据库的UTF8编码不匹配,导致转码失败。

解决方案

1. 导入时指定文件编码

直接在psql命令中添加-encoding参数,告诉psql以WIN1254编码读取文件,自动转码为数据库的UTF8编码导入:

psql -h localhost -U postgres -d test -f C:\file.sql -encoding WIN1254

2. 将SQL文件转换为UTF8编码后导入

彻底修改文件编码,避免后续编码问题:

  • 图形化方式:用记事本打开C:\file.sql,点击「文件」→「另存为」,在编码下拉菜单选择「UTF-8」,保存后用新文件执行原导入命令。
  • 命令行方式(PowerShell):
    Get-Content -Path C:\file.sql -Encoding Default | Set-Content -Path C:\file_utf8.sql -Encoding UTF8
    
    之后导入转换后的文件:
    psql -h localhost -U postgres -d test -f C:\file_utf8.sql
    

3. 临时调整客户端编码(临时方案)

进入psql交互模式,临时设置客户端编码为WIN1254后再导入:

  1. 执行命令进入交互环境:
    psql -h localhost -U postgres -d test
    
  2. 设置客户端编码:
    SET client_encoding = 'WIN1254';
    
  3. 执行文件导入:
    \i C:\file.sql
    

内容的提问来源于stack exchange,提问作者ADAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:40:20