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

使用psql执行SQL文件报首行语法错误,PGAdmin可正常运行该文件

解决psql执行SQL文件时的编码BOM错误

这确实是编码问题,具体是**UTF-8 BOM(字节顺序标记)**导致的。pgAdmin 4.8会自动忽略UTF-8文件开头的BOM,但psql会把BOM对应的字节解析成ÿ_/这类乱码字符,当作SQL语句的一部分,所以无论你调整代码位置,错误都会指向第1行。

解决方法:

  • 用文本编辑器移除BOM
    使用支持编码设置的编辑器(如VS Code、Notepad++)打开SQL文件:

    • VS Code:点击右下角的编码标识(如「UTF-8」),选择「通过编码重新打开」→「UTF-8」,再选择「通过编码保存」→「UTF-8(无BOM)」。
    • Notepad++:菜单栏选择「编码」→「转为UTF-8无BOM编码」,保存文件即可。
  • 通过psql命令指定编码
    若不想修改文件,可在执行命令时指定文件编码(适用于带BOM的UTF-8文件):

    psql -d 你的数据库名 -U 用户名 -f C:/FolderName/FileName.sql -W --encoding=UTF8
    

    注:该方法兼容性不如移除BOM彻底,优先推荐第一种方法。

  • PowerShell命令移除BOM(Windows环境)
    直接通过命令行工具移除文件开头的BOM:

    $content = Get-Content -Path "C:/FolderName/FileName.sql" -Raw
    $utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $false
    [System.IO.File]::WriteAllLines("C:/FolderName/FileName.sql", $content, $utf8NoBomEncoding)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:05:07