替换asp.net webform中的MSWord智能引号

我遇到一个问题,用户在MS Word中编写一些大块文本,然后将其粘贴到在线表单中。 这些是作为颠倒进入数据库的? 我有什么选择用标准报价替换它们?

这些智能引号是一个unicode点。 您只需要一个简单的String.Replace来对它们进行排序。

-edit-类似的东西:

mystring.Replace("\u201C","\"").Replace("\u201D","\"") 

我有什么选择用标准报价替换它们?

最好的方法不是取代它们。 人们想要使用“智能引号”,让他们。 它们不是仅存在于MS Word中的exception,它们是完全有效的Unicode字符,如果您的应用程序不存储非ASCII字符,那么除了智能引号之外还会出现更多错误。

对所有网页使用UTF-8编码,并将您的内容存储在支持Unicode的数据库中(例如,如果您使用的是SQL Server,请使用NVARCHAR),您不仅支持智能引号,还支持重音和其他字母。

您应该通过HtmlEncode方法运行输入,该方法将从“或”转换为 ,允许您将这些和其他更高的字符保存为可以毫不费力地保存的格式。

我还应该再次提起乔尔的post吗?

绝对最低每个软件开发人员绝对必须知道Unicode和字符集(没有借口!)