【发布时间】:2013-09-25 11:56:40
【问题描述】:
我正在为一些 UTF8 数据而苦苦挣扎。
当我在十六进制视图中打开一个 UTF8 文件时,é 被分成两个字符(U+0065 e 和 U+00B4 ´) 而不是使用明显的字符 U+00E9 é。
如果我将这些数据存储在我的数据库中(注意:排序规则设置为 German_PhoneBook_CI_AI) 然后它被存储了
德帕迪约,杰拉德(!!)
而不是: 德帕迪约,热拉尔。
所以我想知道数据本身是否有缺陷,或者我缺少什么样的信息。 如果您需要与此问题相关的更多信息,请告诉我。
显而易见的问题是:我该如何解决这个问题?
注意: 我将此问题标记为 C# / VB.NET,因为可能有代码 sn-ps 有用的答案。
【问题讨论】:
-
那个 UTF-8 文件是如何创建的,您在数据库中使用什么编码?
-
如果真的是UTF8文件那么é应该编码为0xc3, 0xa9
-
Unicode 中有组合变音字符,但 U+00B4 没有。我会说编码不是 UTF-8 或者它有问题。
-
@MatthewWatson U+00E9 相当于 0xc3 0xa9。所以我猜这个文件有缺陷。非常感谢!
标签: c# sql-server vb.net encoding diacritics