当我尝试写入postgresql DB时出现此错误。
NpgsqlException:错误:22021:编码的字节序列无效 “UTF8”:0xe5 0x27 0x2c
只有当我使用丹麦字母时才会发生这种情况(æøå)。
有没有办法将它设置为使用ex。 Unicode? p>
我在C#项目中使用Npgsql。
当我不使用丹麦字母时,我完全没有问题。
答案 0 :(得分:1)
你的应用程序有问题。它正在发送latin-1编码的字符串,就像它们是utf-8一样。
错误中的字节序列是字符串的 latin-1 :
å',
每:
regress=> SELECT convert_from(BYTEA '\xe5272c', 'latin-1');
convert_from
--------------
å',
(1 row)
您必须正确设置client_encoding
以反映您正在发送的文本的编码,或者(最好)在使用nPgSQL时使用正确的C#unicode字符串。
答案 1 :(得分:0)
NpgsqlConnection conn = new NpgsqlConnection(
"Server="+ConnectionInfo +";"+
"Port=5432;" +
"User Id=MyAdmin;" +
"Password=Test;" +
"Database=MyDB;"+
"Encoding = Unicode"
);
conn.Open();