gpt4 book ai didi

javascript - 从 PHP 中的 UTF-8 字符串中删除控制字符

转载 作者:IT王子 更新时间:2023-10-29 00:03:43 25 4
gpt4 key购买 nike

所以我要在客户端(输入后)删除控制字符(制表符、cr、lf、\v 和所有其他不可见字符),但由于无法信任客户端,我也必须在服务器中删除它们。

所以根据这个链接http://www.utf8-chartable.de/

控制字符从x00到1F,从7F到9F。因此我的客户端(javascript)控制字符删除功能是:

return s.replace(/[\x00-\x1F\x7F-\x9F]/g, "");

我的 php(服务器)控制字符删除功能是:

$s = preg_replace('/[\x00-\x1F\x7F-\x9F]/', '', $s);

现在这似乎只在 PHP 中产生国际 utf8 字符的问题,例如 ς (xCF x82)(因为 x82 在第二个序列组中),等效的 javascript 不会产生任何问题。

现在我的问题是,我是否应该删除 7F 到 9F 的控制字符?据我了解,从 127 到 159(7F 到 9F)的序列显然可以是有效 UTF-8 字符串的一部分?

另外,也许我什至不应该过滤 00 到 31 控制字符,因为其中一些字符可能会出现在一些奇怪的(日语?中文?)但有效的 utf-8 字符中?

最佳答案

看来我只需要将 u 标志添加到正则表达式于是就变成了:

$s = preg_replace('/[\x00-\x1F\x7F-\x9F]/u', '', $s);

关于javascript - 从 PHP 中的 UTF-8 字符串中删除控制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21284228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com