【问题标题】:Detecting encoding conversion problems检测编码转换问题
【发布时间】:2009-01-07 03:21:28
【问题描述】:

我公司网站上的大部分内容一开始都是 Word 文档(Windows-1252 编码),最终被复制并粘贴到我们的 UTF-8 编码内容管理系统中。转换通常会阻塞一些必须手动清理的字符(特殊中断字符、智能引号、科学记数法),但当然有一些总是会漏掉。

您认为最好的检测方法是什么?

【问题讨论】:

    标签: c# encoding utf-8 windows-1252


    【解决方案1】:

    你是如何进行转换的?

    整个从 Word 复制的问题是我经常遇到的问题,但它应该真的很容易解决。

    您提到的那些字符都在0x80 - 0x9F 范围内,其中the Windows-1252 code page differs from the ISO-8859-1 code page。该范围在 ISO-8859-1 中未定义。

    您必须从 ISO-8859-1(或者可能是 ISO-8859-15)而不是 Windows-1252 进行转换,导致它在该范围内的字符上阻塞。

    您应该调整转换的源编码,或者,如果这不可行(我不熟悉 C#,但我对此表示怀疑),请使用代码页图表来修复与主要字符分开的 32 个问题字符转换。

    【讨论】:

      【解决方案2】:

      您可以将文本保存为 .rtf,然后使用其他程序对其进行解析吗?

      您可以使用 Word 的 VBA 将文本保存为正常的内容吗?

      【讨论】:

      • 不幸的是,最终用户的培训并不是很成功。从 word 复制粘贴到记事本,然后 CMS 解决了所有问题,但用户不愿遵循这个繁琐的步骤。我正在尝试找到可以解决此服务器端的解决方案。
      • 可以在 CMS 服务器上安装 Word 吗?如果是这样,您也许可以使用 COM 互操作将文本转换为 CMS 可以处理的内容。
      【解决方案3】:

      如前所述,最好将 Word 内容导出为可解析的格式(RTF 或 XML 都可以)。

      使用复制和粘贴将材料添加到您的 CMS 可能有特定原因,但是通过复制和粘贴,您可能总是会以某种目视检查和修复回合结束,除非您创建一个监控工具剪贴板。

      从(最新版本)Word 复制和粘贴时,剪贴板有几种不同的格式可供使用,其中一种格式是基于 XML 的。 可以创建一些内容来清理剪贴板上的 Word XML,并将文本版本(您可能粘贴到 CMS)“设置”为清理后的格式。

      您可以使用 Office 附带的 Word.interop 和标准 C# 剪贴板功能来创建它。该工具可以在 Word 的顶部(在后台)运行,同时向 CMS 添加内容。

      【讨论】:

      • 有趣,我正在研究实现这样的东西,并会告诉你结果如何!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 2013-08-22
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多