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