替换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和字符集(没有借口!)