存储在String对象中的数据是否始终使用UTF16编码?
我问这个是因为我的数据库确实存储了非Unicode的非英语。我认为数据不可读,因为它是以错误的编码方式读取的。
由于
答案 0 :(得分:5)
内部.NET字符串是UTF-16,是的......但重要的是如何在.NET和数据库之间传输数据。
只要字符可以在Unicode中表示,并且驱动程序执行适当的转换,您应该没问题。如果您尝试表示无法用Unicode表示的文本,您可能会遇到一些有趣的行为。
答案 1 :(得分:0)
是的,.NET字符串总是以UTF-16编码 - 代理对除外,这意味着2字节字符。
答案 2 :(得分:0)
.NET字符串始终是Unicode。如果您的数据库是unicode,那么您就可以了,否则您需要将文本从其所处的格式转换为unicode。
答案 3 :(得分:0)
答案 4 :(得分:0)
如果您正在将ADO.NET与SqlDataCommands(或其他类型的DataCommands)一起使用,则应该为您处理任何所需的转换,您无需担心它。