【发布时间】:2009-01-07 03:21:28
【问题描述】:
我公司网站上的大部分内容一开始都是 Word 文档(Windows-1252 编码),最终被复制并粘贴到我们的 UTF-8 编码内容管理系统中。转换通常会阻塞一些必须手动清理的字符(特殊中断字符、智能引号、科学记数法),但当然有一些总是会漏掉。
您认为最好的检测方法是什么?
【问题讨论】:
标签: c# encoding utf-8 windows-1252
我公司网站上的大部分内容一开始都是 Word 文档(Windows-1252 编码),最终被复制并粘贴到我们的 UTF-8 编码内容管理系统中。转换通常会阻塞一些必须手动清理的字符(特殊中断字符、智能引号、科学记数法),但当然有一些总是会漏掉。
您认为最好的检测方法是什么?
【问题讨论】:
标签: c# encoding utf-8 windows-1252
你是如何进行转换的?
整个从 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 个问题字符转换。
【讨论】:
您可以将文本保存为 .rtf,然后使用其他程序对其进行解析吗?
您可以使用 Word 的 VBA 将文本保存为正常的内容吗?
【讨论】:
如前所述,最好将 Word 内容导出为可解析的格式(RTF 或 XML 都可以)。
使用复制和粘贴将材料添加到您的 CMS 可能有特定原因,但是通过复制和粘贴,您可能总是会以某种目视检查和修复回合结束,除非您创建一个监控工具剪贴板。
从(最新版本)Word 复制和粘贴时,剪贴板有几种不同的格式可供使用,其中一种格式是基于 XML 的。 可以创建一些内容来清理剪贴板上的 Word XML,并将文本版本(您可能粘贴到 CMS)“设置”为清理后的格式。
您可以使用 Office 附带的 Word.interop 和标准 C# 剪贴板功能来创建它。该工具可以在 Word 的顶部(在后台)运行,同时向 CMS 添加内容。
【讨论】: