我想为我的Entity Framework数据库应用程序添加utf8支持(sql server 2008 r2)
我想我需要将charset添加到connectionString。
这就是我的connectionString的工作方式(当然是匿名的)
<add name="MyContainer" connectionString="metadata=res://*/MyDatabase.csdl|res://*/MyDatabase.ssdl|res://*/MyDatabase.msl;provider=System.Data.SqlClient;provider connection string="Data Source=myserver\instancename;Initial Catalog=MyCatalog;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD;MultipleActiveResultSets=True;"" providerName="System.Data.EntityClient" />
我看了一下connectionstrings.com,但我发现没有关于utf8的内容。
我尝试添加charset=utf8
,但这并不能解决问题。
<add name="MyContainer" connectionString="metadata=res://*/MyDatabase.csdl|res://*/MyDatabase.ssdl|res://*/MyDatabase.msl;provider=System.Data.SqlClient;provider connection string="Data Source=myserver\instancename;Initial Catalog=MyCatalog;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD;MultipleActiveResultSets=True;charset=utf8;"" providerName="System.Data.EntityClient" />
System.Data.EntityException中的结果: {“底层提供程序在ConnectionString上失败。”} {“不支持关键字:'charset'。”}
问题:
如何在connectionString中将字符集设置为utf8?或者默认启用utf8?
答案 0 :(得分:3)
unicode的用法由变量或列类型定义。 Char
和varchar
是非unicode,nchar
和nvarchar
是unicode(UCS-2)。
还有一些排序规则定义了char
和varchar
列的代码页以及字符串的比较和排序方式。每个数据库都有一个默认排序规则,每个列或变量都可以明确定义其他排序规则。
字符集未通过连接进行配置。