你如何处理MS Word添加的“特殊”字符?

时间:2009-05-06 22:05:58

标签: html ms-word

我想知道如何清理MS Word的特殊字符,例如m和n-dashes以及引号?

我经常发现自己从Word复制客户端内容并粘贴到静态HTML页面,但内容最终会出现奇怪的字符,因为特殊字符未转换为正确的ACSII代码,因此显示为乱码文本。 (对于这些基本网站,我使用的是Dreamweaver。)

当客户端将Word中的内容复制到仅文本字段(主要是textareas)时,我看到了很多类似的问题。当我把它放到PDF(通过PHP)或它出现在页面上时,它也会出现乱码。

你是如何处理的?您使用的是清洁服务或程序吗?

6 个答案:

答案 0 :(得分:8)

关于客户在textareas中发布Word中的复制/粘贴文本:

确保客户端以任何特定编码发送文本的最可靠方法(因此希望从CP-1252 [或任何Word使用]进行任何转换)是将accept-charset="..."属性添加到你所有的<form>。 E.g:

<form ... accept-charset="UTF-8">
   ...
</form>

大多数浏览器都会遵守这一规定,并确保在访问您的网站之前,任何“特定于字词”的字符都会转换为相应的字符集。

一旦无效文本进入您的网站,您无法可靠地修复它,因此最好只检查所有输入是否在您使用的任何字符集中有效,并丢弃任何包含无效文本的请求。即使使用accept-charset,这也是必要的,因为毫无疑问,有些客户会忽略它。

答案 1 :(得分:6)

您可以使用preg_replace函数调用从字符串中删除单词或其他字符的所有特殊字符

 preg_replace('/[^\x00-\x7F]+/', '', $str);

答案 2 :(得分:4)

注意在任何地方指定一个编码并使用UTF-8,然后那些“特殊”字符应该存活得很好。但是一旦他们经历了一个无法代表它们的编码,那么它最初的信息就会丢失,所以它无法修复(除了一些特定但很常见的情况,比如在Cp1252和ISO之间切换) 8859-1)。

答案 3 :(得分:2)

您可以尝试Demoroniser

答案 4 :(得分:1)

确保将Word配置为使用UTF-8进行&#34;另存为...&#34; HTML。

这是选项&gt;单词选项&gt;高级&gt;网络选项&gt;编码

答案 5 :(得分:0)

如果它是一个只是文本的Word文件(即:没有图形,表格等),您可以尝试从Word中保存为HTML,将生成的HTML复制/粘贴到Dreamweaver中的文档中,然后使用Dreamweaver的“清理Word HTML“功能(在命令菜单下)。

作为替代方案,您可以尝试使用fix my HTML,但我没有亲自尝试使用Word文字,因此结果可能会有所不同。