4wk*_*wk_ 9 php unicode encoding tinymce
在我们的网站上,一些Mac用户在将PDF文件中的文本复制粘贴到TextArea(由TinyMCE处理)时会遇到麻烦.所有突出显示的字符都已损坏,并成为例如e?a é,i?for a î等.我无法使用Windows计算机重现此问题.
当我在一个文件上写入TextArea的内容时(在将其插入数据库之前),我发现初始文件e?在视觉上与传统文件不同é(在Vim上,见下文).

确实 :
// the corrupted é - first line of the screenshot
echo bin2hex($char); // display 65cc81
// traditionnal é
echo bin2hex('e?'); // display c3a9
Run Code Online (Sandbox Code Playgroud)
经过大量搜索后,我在这里:似乎Mac OS将Unicode强调的字符复制为两个字符的组合:在我们的示例中,e + ?.到目前为止,我没有找到任何解决方案来替换损坏é的真实的,以避免e?在数据库中.
而且我有点绝望.
将表示规范化为一种形式或另一种形式的过程称为标准化.在PHP中有Normalizer类,通过它发送所有输入是一个好主意:
$input = Normalizer::normalize($input);
Run Code Online (Sandbox Code Playgroud)
你可能想要标准化形成C,Canonical Decomposition,然后是Canonical Composition.
如果您的系统上没有该类,那就是Patchwork UTF-8库.
| 归档时间: |
|
| 查看次数: |
1001 次 |
| 最近记录: |