我有一个烦人的问题preg_replace
和字符集。我正在做一对preg_replace
连续但不幸的是第一次出现任何特殊字符,例如äöüß
由 preg_replace 插入我得到PREG_BAD_UTF8_ERROR
在随后的通话中。
除了插入的特殊字符显示得很好之外,它们只会破坏任何后续字符preg_replace
称呼。 preg_ 只能是utf-8吗?
文本preg_replace
正在处理的内容来自 MySQL 数据库,并且替换是在 php 文件中使用来自 MySQL 的值制作的。mb_detect_encoding()
says ASCII
对于文本,直到第一次用特殊字符替换,然后它检测UTF-8
,所以它发生了变化,这可能就是问题所在。
供您参考,我正在使用 iso-8859-1 编码(PHP、MySQL、元字符集)。此外,我在替换字符串上有一个 htmlentities 的解决方法,目前正在使用。
关于如何解决它有什么想法吗?
您正在寻找的可能是mb_ereg_替换 http://php.net/manual/en/function.mb-ereg-replace.php。它处理多字节编码,并且对于不同的编码应该表现良好。请务必使用mb_regex_encoding http://www.php.net/manual/en/function.mb-regex-encoding.php与它一起。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)