我可以在我的脚本中使用UTF-8字符.
事实上,变量和函数的名称可能包含Unicode字符.
还有mb_string扩展,它处理多字节字符串,但在无数文章中,PHP因其缺乏Unicode支持而受到批评.
我不明白; 为什么PHP说不支持Unicode?
我正在尝试为PHP中的名称编写一个合理宽松的验证器,我的第一次尝试包含以下模式:
// unicode letters, apostrophe, hyphen, space
$namePattern = "/^([\\p{L}'\\- ])+$/";
Run Code Online (Sandbox Code Playgroud)
这最终传递给了一个电话preg_match().据我所知,这适用于你的vanilla ASCII字母表,但似乎惹上像Ă或张这样的尖锐字符.
这个模式本身有什么问题吗?也许我期待\p{L}比我想的更多的工作?
或者它与传入输入的方式有关?我不确定它是否相关,但我确实确保在表单页面上指定UTF8编码.