我正在应用以下功能
\n\n<?php\n\nfunction replaceChar($string){\n $new_string = preg_replace("/[^a-zA-Z0-9\\s\xc3\xa7\xc3\xa9\xc3\xa8\xc3\xaa\xc3\xab\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa4\xc3\xa5\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbf]/", "", $string);\n return $new_string;\n}\n\n$string = "This is some text and numbers 12345 and symbols !\xc2\xa3%^#&$ and foreign letters \xc3\xa9\xc3\xa8\xc3\xaa\xc3\xab\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa4\xc3\xa5\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbf";\n\necho replaceChar($string);\n?>\nRun Code Online (Sandbox Code Playgroud)\n\n效果很好,但是如果我将 \xc3\xa3 添加到 preg_replace 中,例如
\n\n$new_string = preg_replace("/[^a-zA-Z0-9\\s\xc3\xa7\xc3\xa9\xc3\xa8\xc3\xaa\xc3\xab\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbf]/", "", $string);\n\n$string = "This is some text and numbers 12345 and symbols !\xc2\xa3%^#&$ and foreign letters \xc3\xa9\xc3\xa8\xc3\xaa\xc3\xab\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb6\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa4\xc3\xa5\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbf\xc3\xa3";\nRun Code Online (Sandbox Code Playgroud)\n\n它与井号 \xc2\xa3 冲突,并用黑色方块中的不明问号替换井号。
\n\n这并不重要,但有人知道这是为什么吗?
\n\n谢谢你,
\n\n巴里
\n\n更新:谢谢大家。更改了添加 u 修饰符的函数: pt2.php.net/manual/en/\xe2\x80\xa6 \xe2\x80\x93 按照 Artefacto 的建议,效果很好
\n\nfunction replaceChar($string){\n$new_string = preg_replace("/[^a-zA-Z0-9\\s\xc3\xa7\xc3\xa9\xc3\xa8\xc3\xaa\xc3\xab\xc3\xb1\xc3\xb2\xc3\xb3\xc3\xb4\xc3\xb5\xc3\xb8\xc3\xb6\xc3\xa0\xc3\xa1\xc3\xa2\xc3\xa3\xc3\xa4\xc3\xa5\xc3\xac\xc3\xad\xc3\xae\xc3\xaf\xc3\xb9\xc3\xba\xc3\xbb\xc3\xbc\xc3\xbd\xc3\xbf]/u", "", $string);\nreturn …Run Code Online (Sandbox Code Playgroud)