我正在使用此代码在我的数据库中存储韩文字符串:
Dim username As String = Request.QueryString.Get("Some Korean String")
Using dg As New DataContext()
Dim newfriend As New FriendsTable With {.AskingUser = User.Identity.Name, .BeingAskedUser = username, .Pending = True}
dg.FriendsTables.InsertOnSubmit(newfriend)
dg.SubmitChanges()
end using
检查我的数据库,存储的用户名是一个字符串“????”...
任何人都知道这是怎么发生的或任何变通方法?
答案 0 :(得分:1)
您的数据库整理是什么?您是否能够使用任何其他数据访问技术存储韩语字符串?用户名列的类型是什么,它是否在LINQ to SQL中准确映射?
我怀疑数据库中的某些未正确设置以允许完整的Unicode。我非常怀疑这与LINQ本身有什么关系。
要检查的另一件事是,您实际上是首先获得正确的数据。通常会有几个地方出现问题 - 您需要分别验证每个地方以查看数据被破坏的位置。我有short article on this您可能会觉得有帮助。
答案 1 :(得分:0)
听起来您正在将韩文文本存储在varchar / text列中,而该列未使用韩语排序规则。最简单的解决方法是将列类型更改为nvarchar / ntext。
nchar列类型存储Unicode数据,而char and varchar类型存储指定排序规则中的单字节字符。