解决组合变音字符造成的页面文字被覆盖问题

现象

原因

组合变音字符大量叠加让其越界显示,周围的字符就会被遮盖

解决方案

将组合变音字符(U+0300-U+036F,U+0489,U+0E47)替换成□

$content = preg_replace('/([x{0300}-x{036F}]|x{0489}|x{0E47})/u', '□', $content);

ps:另外两个字符集(U+FE20-U+FE2F,U+20D0-U+20FF)没有验证是否会覆盖,蛮写一下

$content = preg_replace('/([x{0300}-x{036F}]|[x{FE20}-x{FE2F}]|[x{20D0}-x{20FF}]|x{0489}|x{0E47})/u', '□', $content);

参考资料

https://www.zhihu.com/question/394434460/answer/1222502907

https://blog.csdn.net/Wangdanting123/article/details/98079484

如果您看了本篇博客,觉得对您有所收获,请点击右下角的[推荐]
如果您想转载本博客,请注明出处
如果您对本文有意见或者建议,欢迎留言
感谢您的阅读
原文地址:https://www.cnblogs.com/RainCry/p/15429803.html