在一个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上工作正常,即使传递非英语字符。有什么问题吗
1条答案
按热度按时间jgwigjjp1#
表达式中的
u
标志表示UTF-8
。您使用的是Windows 1253
,它不是UTF-8。最好的修复方法是切换到UTF-8。点击“Windows 1253”,选择“使用编码保存”,然后选择“UTF-8”。Laravel和任何当代Web应用程序都是围绕UTF-8设计的。