My SQL Server 2008 R2 数据库有字符串列 (nvarchar)。一些旧数据显示ASCII。我需要在我的网站中向用户显示它,并且我更喜欢将数据库中的数据转换为 Unicode。有没有快速的方法可以做到这一点?是否有我应该注意的缺点?
我的问题的例子:
在数据库中,我看到特殊的字符而不是常规字符。我有一个用户的名称,应该是Amédée
,而是显示Am?d??
。
在其他情况下,我看到的是"
而不是引号 ("
),或者字符&#
而不是单词 "and"
.
好吧,如果您的数据库中有重音字符,那绝对不是 ASCII。首先找出您/他们在旧数据库中使用的代码页,并将其转换为 UTF-8,然后保存到新数据库中。
我构建了以下函数:
public static string FixString(string textString)
{
textString = Regex.Replace(textString, "[trn]*", 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;
}
这就成功了!!