Postgresql 将Sql Server Latin1导入并转换为Postgres UTF8

Postgresql 将Sql Server Latin1导入并转换为Postgres UTF8,postgresql,import,utf-8,character-encoding,Postgresql,Import,Utf 8,Character Encoding,我有一些拉丁1编码的SQL Server表,它们通过外部表被读入Postgres 10.10 UTF8数据库 问题来自几个“自由输入”字段,这些字段积累了垃圾字符,这些字符不能转换为UTF8,并导致PG数据库中的查询失败。使用replace()工作了一段时间,但很自然,新的方法会继续出现 继续跟踪这些数据并添加更多的“替换”会变得越来越麻烦。Postgres中是否有任何方法在将这些字符串引入到外部表时对其进行大容量转换 迄今为止,已有4次尝试: 1) “convert_from”似乎很明显,但我

我有一些拉丁1编码的SQL Server表,它们通过外部表被读入Postgres 10.10 UTF8数据库

问题来自几个“自由输入”字段,这些字段积累了垃圾字符,这些字符不能转换为UTF8,并导致PG数据库中的查询失败。使用replace()工作了一段时间,但很自然,新的方法会继续出现

继续跟踪这些数据并添加更多的“替换”会变得越来越麻烦。Postgres中是否有任何方法在将这些字符串引入到外部表时对其进行大容量转换

迄今为止,已有4次尝试:

1) “convert_from”似乎很明显,但我只能在定义的字符串上使用,而不能在字段值上使用。有可能对随机场的值起作用吗

2) 更改客户端编码没有帮助。这是否适用于此

3) 我还尝试根据创建转换,但不知道如何编写适当的函数。它指定源字符串的长度。如果没有一个具体的长度,这会起作用吗

4) 也许内置转换就是答案?但是我找不到任何关于如何使用它们的例子。我不是一个真正的数据库人员,所以示例非常重要


谢谢

1)您可以尝试在表列上使用convert_from。例如
选择convert_from(c',UTF8')from t2)是的,这不是解决方案4)内置转换由
转换使用(string bytea、src\u编码名称、dest\u编码名称)
您能给出详细的拉丁语垃圾示例、错误示例,您是如何修复它们的,以及您希望如何修复它们的?感谢@pifor 1)我目前收到的“错误:函数convert_from(text,unknown)不存在”。我是否可能以某种方式破坏了它?我尝试将_转换为,但在将字符串转换为BYTEA出现一些问题后,只会产生“ERROR:invalid byte sequence for encoding“UTF8”:0x96”的结果,我能够让它出现一个有用的错误‘error:type bytea的无效输入语法第1行:SELECT E’…’,这样至少它可以识别出有问题的字符,并使它们更易于跟踪。