最近我们的系统出现了编码问题:
如果我们的数据库中有字符串“æ”,则在我们的网页上变为“Ô。
现在这个问题已经解决,但问题是现在我们的数据库中有很多“Ã|”:用户没有看到并验证带有这些字符的预填表单。
我发现如果你在utf 8 C3A6中读到你会得到“æ”,如果你在ascii中读到它,你会得到“Ô。
这很奇怪,因为如果我执行
"select convert(varbinary(40),N'æ'),convert(varbinary(40),'æ')"
我没有相同的结果......
您对我如何修复数据库有任何想法(即将所有“Ã|”更改为“æ”)?
THX
答案 0 :(得分:1)
据我所知,唯一需要修复的方法是使用替换:
Update Table
Set Column = Replace(Column, N'æ', N'æ')
在这种情况下,我假设该列现在是Unicode(即nvarchar或nchar)。
答案 1 :(得分:0)
如果你在ascii中读到它,你会得到“Ã|”。
ASCII仅将字符分配给字节00-7F。然而,有几个“扩展ASCII”编码,其中C3 A6代表“Ã|”,包括流行的西欧编码ISO-8859-1和windows-1252,以及土耳其ISO-8859-9和windows-1254。 / p>
要修复编码问题,只需: