使用...
检测Word中某些文本的编码(保存为CSV文件)时$encoding = mb_detect_encoding($value, 'WINDOWS-1252, ISO-8859-1', true);
$value = iconv($encoding, 'UTF-8//IGNORE', $value);
如果一个字符串有引号,那么$encoding
将被设置为ISO-8859-1而不是它应该是WINDOWS-1252,所以该字符串将显示为“自我激励”,周围有趣的方框而不是“自我激励”,采用UTF-8编码。
除了替换卷曲引号之外,有关如何解决此问题的任何想法,因为这也会影响其他字符吗?
答案 0 :(得分:0)
我曾经创建过一个函数来将几乎所有内容转换为UTF8,它内部还有一些内容嗅探功能,这可能对你有帮助吗?
答案 1 :(得分:0)
Windows-1252和ISO-8859-1仅在字节7F到9F方面有所不同。它们存在于前者中但不存在于后者中。如果您知道您的编码是Windows-1252或ISO-8859-1,您可以通过这些字节的存在来确定它是什么。如果没有包含这样的字节,并且你知道它是这两种编码之一,你可以从其中转换。