【问题标题】:replace MSWord smart quotes in asp.net webform替换 asp.net webform 中的 MSWord 智能引号
【发布时间】:2009-09-23 22:01:05
【问题描述】:

我遇到了一个问题,用户在 MS Word 中编写一些大块文本,然后将其粘贴到在线表单中。这些以颠倒的形式进入数据库?我有哪些选择可以用标准引号替换这些?

【问题讨论】:

    标签: c# asp.net smart-quotes


    【解决方案1】:

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

    -edit- 类似:

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

    【讨论】:

    • 双智能引号的代码点是 \u201C 和 \u201D。 \u0080–\u009F 是不可见的控制字符,只有在您将“Windows-1252”字符集误解为“ISO-8859-1”时才会得到。
    【解决方案2】:

    我有哪些选择可以用标准引号替换这些?

    最好的方法是不要替换它们。人们想使用“智能引号”,让他们来吧。它们不是仅存在于 MS Word 中的异常,它们是完全有效的 Unicode 字符,如果您的应用程序没有正确存储非 ASCII 字符,那么除了智能引号之外,还有很多问题会出错。

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

    【讨论】:

    • 谢谢,我同意这是“最好的”方式。不幸的是,它发布到 Oracle DB,主要客户端应用程序是第 3 方 Sybase 应用程序。在该序列的某个时刻,有人不允许使用 UTF-8。
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-10-14
      • 2011-10-21
      • 1970-01-01
      • 2013-11-17
      • 2011-11-07
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多