读取.txt文件中的特殊字符 - PHP

问题描述:

我试图使用php/AJAX在网页上输出.txt文件的内容,该文件适用于没有特殊字符的.txt文件。但是,如果.txt文件包含字母上的重音符等字符,例如,对文件内容的AJAX请求返回null。读取.txt文件中的特殊字符 - PHP

我认为这个问题起源于复制和粘贴word文档中.txt文件的内容,就像我跑过的一个测试一样。

如果复制,例如,从Word文档的撇号并将其​​粘贴到记事本通过一个.txt,不同的看法似乎它将如何,如果撇号被直接键入到记事本.txt文件。

我的客户端目前上传.txt文件到他的服务器上的某个文件夹,并通过从word中复制和粘贴来创建他的内容。有没有办法解决这个问题,以便读取这些“复制和粘贴”的特殊字符?格式差异

例子:

从字复制 - 戴维的

直接类型 - 戴维的

你看到撇号的区别?

+0

你是否将文件以UTF8或ANSI格式保存在记事本中? – hexblot 2013-04-29 13:39:59

+0

UTF8编码 – FunnyOxymoron 2013-04-29 13:42:31

+0

您将需要寻找解决方案来“拉直报价”在您的PHP或您的JavaScript。 – 2013-04-29 13:50:46

可以做htmlspecialchars()上包含文本文件的变量在回显之前吗?

这应该将任何特殊字符转换为HTML实体,并应该可以在网页上查看。

OK))

1. do not use notepad, ever 
    2. save all the files with the utf8 encoding 

就是这样,问题就解决了

这些被称为智能引号。您可以按照位于here的指南,在Word选项中更改它们。这将是最好的选择,因为它定义了您在源代码中的预期输出。如果这不是一个选项,即一次有成千上万的Word文件,那么后处理是一条可行的路。这可以通过字符looking up the HTML Entity并使用查找和替换功能来完成。我建议using PHP to open the text file使用str_replace()函数来查找和替换所有不需要/不可显示的字符,它们本身可以在数组等中定义。