在我们的网站上,一些Mac用户在从PDF文件复制粘贴文本到由TinyMCE处理的TextArea时遇到麻烦。所有带重音符号的字符都会变得损坏,例如将
当我将TextArea的内容写入文件(在插入数据库之前),我发现初始的
实际上:
在大量搜索之后,我发现:Mac OS会将Unicode重音字符复制为两个字符的组合。在我们的例子中,就是
é
变为e?
,将î
变为i?
等等。我无法在Windows电脑上重现这个问题。当我将TextArea的内容写入文件(在插入数据库之前),我发现初始的
é
在视觉上与传统的é
不同(在Vim中查看如下)。实际上:
// the corrupted é - first line of the screenshot
echo bin2hex($char); // display 65cc81
// traditionnal é
echo bin2hex('é'); // display c3a9
在大量搜索之后,我发现:Mac OS会将Unicode重音字符复制为两个字符的组合。在我们的例子中,就是
e + ́
。到目前为止,我还没有找到解决方案来替换损坏的é
以避免在数据库中出现e?
。我有些绝望了。