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

时间:2009-09-23 22:01:06

标签: c# asp.net smart-quotes

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

3 个答案:

答案 0 :(得分:4)

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

- 编辑 - 像:

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

答案 1 :(得分:2)

  

我有什么选择用标准报价替换这些?

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

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

答案 2 :(得分:0)

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

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

  

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)