如果在运行服务时出现如下日志,则必须更改 protgres 的编码。

Caused by: java.lang.IllegalStateException:
org.postgresql.util.PSQLException:
ERROR: character with byte sequence 0xed 0x94 0x84 in encoding "UTF8" has no equivalent in encoding "WIN1252"

解决方案

  1. 以管理员身份运行CMD。

  2. 移动至启动器安装路径的 pgsql (..\STATIC Launcher LITE\builtin\pgsql\bin)

  3. 运行postgres

    $ psql.exe -U postgres -p 18001
    
  4. encoding 确认 → 不是UTF8的情况下可能会出问题

    postgres # show server_encoding;
    postgres # show client_encoding;
    
  5. 不是UTF8的话,更改为UTF8。

    postgres # set server_encoding='UTF8';
    postgres # set client_encoding='UTF8';
    
  6. 关闭CMD窗口

  7. 右键以管理员身份运行位于*..\STATIC Launcher LITE\builtin\pgsql* 路径的 stop_server.bat

  8. 在Windows 服务中关闭STATIC Launcher 后重启

当特定服务因编码问题而死时(rule)

  1. 启动器外壳 > stop rule
  2. 管理员身份打开 cmd
  3. 移动至 STATIC Launcher LITE 安装路径\builtin\pgsql\bin