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

原因
组合变音字符大量叠加让其越界显示,周围的字符就会被遮盖
解决方案
将组合变音字符(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
如果您看了本篇博客,觉得对您有所收获,请点击右下角的[推荐]
如果您想转载本博客,请注明出处
如果您对本文有意见或者建议,欢迎留言
感谢您的阅读
如果您想转载本博客,请注明出处
如果您对本文有意见或者建议,欢迎留言
感谢您的阅读

浙公网安备 33010602011771号