Sql Server紧凑字符串编码
问题描述:
如何在SqlServer CE中使用utf8处理字符串?Sql Server紧凑字符串编码
为了节省'±','ê'等语言特殊字符?
@Edit:
我使用的EntityFramework当db是mysqlserver数据有特殊字符,如“A”,“E”,但是当我要等维护的SqlServerCompact丢失数据的特殊字符。
答
SQL Server CE支持nvarchar
和ntext
,它们是UTF-16。基本上:将您的数据存储为一个nvarchar
列中的UTF-16,并且您将被设置。方便地,.NET是也是大多是UTF-16(char
和string
类型实现为UTF-16),所以这可以很好地工作。
如果绝对必须使用UTF-8,你将不得不使用varbinary
/image
,这意味着你失去了大部分的数据库的实用功能。您将能够存储和检索,但过滤和其他操作要困难得多。
当存储数据,确保你要么使用N'foo'
语法文字,或DbType.String
(nvarchar
)/ DbType.StringFixedLength
(nchar
)和不DbType.AnsiString
(varchar
)/ DbType.AnsiStringFixedLength
(char
)