laravel 预匹配():编译失败:UTF-8错误:偏移量2处的字节2高位不是0x80

83qze16e  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(113)

在一个laravel项目上工作时,我收到运行此代码的路线时,我没有写:

if(preg_match('/([ΓΑΒΓΔΕΖΗΘΙΚ])|ΣΤ|fu|ΚΑ|ΚΒ\w+/u', $char)){
   return true;
}
return false;

例如,当您给予Γ字符时,将得到错误

preg_match(): Compilation failed: UTF-8 error: byte 2 top bits not 0x80 at offset 2

在php8.1.9和laravel上工作。同样的代码在tinker上工作正常,即使传递非英语字符。有什么问题吗

jgwigjjp

jgwigjjp1#

表达式中的u标志表示UTF-8。您使用的是Windows 1253,它不是UTF-8。
最好的修复方法是切换到UTF-8。点击“Windows 1253”,选择“使用编码保存”,然后选择“UTF-8”。Laravel和任何当代Web应用程序都是围绕UTF-8设计的。

相关问题