PostgreSql foreign table select 由于特殊字符行而失败

PostgreSql foreign table select fails due to special characters rows

我刚刚设置了一个新的外国 table 如果我只是 select “ID”(整数)字段,它会按预期工作。

当我添加“描述”(文本)字段并尝试 select table 时,它失败并显示此错误消息:

utf-8 'Codec cannot decode byte 0xfc in position 10: invalid start byte

查看遥控器table后,我发现“Description”中包含特殊字符,如:“ö, ü, ä”

我该怎么做才能解决这个问题?


Table 定义(仅前 2 行)

远程table:

CREATE TABLE test (
    [Id] [char](8) NOT NULL,
    [Description] [nvarchar](50) NOT NULL
)

国外table:

Create Foreign Table "Test" (
    "Id" Char(8),
    "Description" VarChar(50)
) Server "Remote" Options (
    schema_name 'dbo', table_name 'test'
);

附加信息:

根据评论中 Laurenz Albe 的建议,我在我的 PostgreSQL 文件夹中创建了一个 freetds.conf,内容如下:

[global]
tds version = auto
client charset = UTF-8

不要忘记在环境变量中设置配置文件的路径FREETDS

Powershell:

[System.Environment]::SetEnvironmentVariable('FREETDS','C:\Program Files\PostgreSQL',[System.EnvironmentVariableTarget]::Machine)