2012-12-19 67 views
0

我的SQL Server 2008 R2数据库有字符串列(nvarchar)。一些旧数据显示ASCII。我需要将其展示给我的网站中的用户,我更愿意将数据库中的数据转换为Unicode。有没有快速的方法来做到这一点?我应该知道哪些缺点?从ASCII到Unicode的SQL数据库

例子给我的问题:

在数据库中,我看到的特殊字符,而不是常客字符。我有一个应该是Amédée的用户名,而代之以Am?d??

在其他情况下,我看到"而不是引号("),或字符&#,而不是字"and"

+0

您如何查看数据库中的数据?选择语句? SSMS?你的网页? –

回答

0

那么,如果你的数据库中有重音字符,那绝对不是ASCII码。先找出你/他们在旧数据库中使用的代码页,然后将其转换为UTF-8,并保存到新的数据库中。

0

我建了以下功能:

public static string FixString(string textString) 
     { 
      textString = Regex.Replace(textString, "[\t\r\n]*", String.Empty); 
      textString = Regex.Replace(textString, "(\\ )+", " ").Replace(" ", " ").Trim(); // .Replace("-", " "); 
      textString = Regex.Replace(textString, "\\(.*?\\)", String.Empty); 
      textString = HttpUtility.HtmlDecode(textString).Trim(); 
      textString = Regex.Replace(textString, "<.*?>", String.Empty); 
      return textString; 
     } 

而且奏效了!