Mir*_*ror 19 javascript php encoding utf-8
所以我在客户端(输入后)删除控制字符(tab,cr,lf,\ v和所有其他隐形字符),但由于客户端不可信,我必须在服务器中删除它们.
所以根据这个链接http://www.utf8-chartable.de/
控制字符从x00到1F,从7F到9F.因此我的客户端(javascript)控件删除功能是:
return s.replace(/[\x00-\x1F\x7F-\x9F]/g, "");
Run Code Online (Sandbox Code Playgroud)
和我的php(服务器)控件删除功能是:
$s = preg_replace('/[\x00-\x1F\x7F-\x9F]/', '', $s);
Run Code Online (Sandbox Code Playgroud)
现在,这似乎会产生国际utf8字符的问题,例如PHP中的ς(xCF x82)(因为x82在第二个序列组中),javascript等效不会产生任何问题.
现在我的问题是,我应该将控制字符从7F删除到9F吗?据我所知,从127到159(7F到9F)的序列显然可以是有效的UTF-8字符串的一部分?
另外,也许我甚至不应该过滤00到31个控制字符,因为这些字符中的一些可能会出现在一些奇怪的(日语?中文?)但是有效的utf-8字符?
Mir*_*ror 16
似乎我只需要将u标志添加到正则表达式,因此它变为:
$s = preg_replace('/[\x00-\x1F\x7F-\x9F]/u', '', $s);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9820 次 |
| 最近记录: |