繁体   English   中英

使用丹麦字母时Postgresql / npgsql无法写

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM