我在Firebird 2.1 DB Varchar字段中存储UTF-8字符时遇到问题。
字段定义没有指定字符集。字符集始终在连接字符串中传递。
所有字段上的字符集都设置为NONE。连接字符串是
<add name="ConnectionString"
connectionString="character set=UTF8;initial catalog="c:\temp\data.FDB";user id=SYSDBA;password=;connection lifetime=15;pooling=true;MinPoolSize=0;MaxPoolSize=50;data source=localhost"
providerName="FirebirdSql.Data.FirebirdClient" />
.NET驱动程序版本为2.1.0.0。 Firebird本身是版本2.1.3.18185。
我的理解是,这会覆盖字段本身的任何设置,但是我在存储字符时遇到了问题,例如数据库中的右单引号(ALT + 0146)。它总是作为一个奇怪的问号角色出现。
在指责ASP.NET网站几天之后,我发现如果我在字段(域)本身上将字符集设置为UTF-8,那么它似乎可以解决问题。
这是对的吗?
我一直认为在连接字符串中传递字符集会做同样的事情。