[英]Postgresql/npgsql cant write when useing danish letters
当我尝试写入我的postgresql DB时出现此错误。
NpgsqlException:错误:22021:编码“ UTF8”的字节序列无效:0xe5 0x27 0x2c
仅当我使用丹麦字母(æøå)时才会发生。
有没有一种方法可以将其设置为使用ex。 Unicode?
我在C#项目中使用Npgsql。
当我不使用丹麦字母时,我一点都没有问题。
您的应用有问题。 它发送的是拉丁文1编码的字符串,就好像它们是utf-8。
错误中的字节序列是字符串的latin-1 :
å',
每:
regress=> SELECT convert_from(BYTEA '\xe5272c', 'latin-1');
convert_from
--------------
å',
(1 row)
您必须正确设置client_encoding
以反映您要发送的文本的编码,或者(最好)在使用nPgSQL时使用适当的C#unicode字符串。
从Word文档或记事本复制并粘贴到C#应用程序文本框字段时,我遇到了同样的问题。 简单的解决方案是将“ Encoding = Unicode”添加到c#应用程序的postgresql连接字符串中。 那有多简单。 经过三天的Google搜索,我感到放心。
NpgsqlConnection conn = new NpgsqlConnection(
"Server="+ConnectionInfo +";"+
"Port=5432;" +
"User Id=MyAdmin;" +
"Password=Test;" +
"Database=MyDB;"+
"Encoding = Unicode"
);
conn.Open();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.