我有一个来自未知字符编码的旧数据库的字符串。我无法编码/过滤字符串以显示正确的文本。
数据库中的数据是什么样的:MarronnièreÃquatrepans
我们需要将字符串显示为:Marronnièreàquatrepans
具体来说,我在解析字符串时遇到问题,因此我可以显示字符à(à
)
这是一个使用Sql Server 2005数据库用VB编写的asp.Net 2.0站点。不确定是否重要,但数据来自具有此排序规则的列:SQL_Latin1_General_CP1_CI_AS
我已经尝试将字符串编码为代码中的各种编码,但无济于事。我还将字符串(以不同方式编码)传递给字节数组,以便为坏字符找到唯一的字节模式,但没有成功。
非常感谢任何想法或线索,谢谢。
答案 0 :(得分:1)
听起来SQL Server数据库中的排序规则与实际使用的字符编码不匹配:(对于粗心的开发人员来说,这是一个相当常见的错误。
这就是SQL Server管理工具显示奇怪字符而不是您期望的字符串的原因。
可能是UTF-8?在UTF-8中,Ã
由字节0xC3 0xA8
表示,它将在Windows代码页Latin-1下解释为è
。我对SQL Server排序规则一无所知,但似乎SQL_Latin1_CP1_CI_AS类似于Windows“Latin-1”。
您需要