使用mb_detect_encoding从UTF-8中的Word引用引号

时间:2011-05-24 10:56:12

标签: php utf-8 character-encoding

使用...

检测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编码。

除了替换卷曲引号之外,有关如何解决此问题的任何想法,因为这也会影响其他字符吗?

2 个答案:

答案 0 :(得分:0)

我曾经创建过一个函数来将几乎所有内容转换为UTF8,它内部还有一些内容嗅探功能,这可能对你有帮助吗?

http://php.net/manual/function.utf8-encode.php#102382

答案 1 :(得分:0)

Windows-1252和ISO-8859-1仅在字节7F到9F方面有所不同。它们存在于前者中但不存在于后者中。如果您知道您的编码是Windows-1252或ISO-8859-1,您可以通过这些字节的存在来确定它是什么。如果没有包含这样的字节,并且你知道它是这两种编码之一,你可以从其中转换。