已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > HTML/CSS/JS > 讨论/求助

标题: 各位大佬【鎶樺彔姝烘妞呭】这种文字怎么用正则过滤掉[已解决]

作者: @Ta

时间: 2022-04-21发布,2022-04-22修改

点击: 12302

【ѩ】【ȹ】【ü】【çµçƒ­æ°´å™¨】【閰掓暖钖у彴涓浣揿鐢】【璺嗘妩阆撴湇鍎跨璁粌】【鐜诲翱閰搁腑鍎跨鎷栭瀷】

数据里有很多这种字符,怎么才可以过滤掉,网上搜了几个方法正常的汉字也会过滤掉,不能用...
手机


[隐藏样式|查看源码]


『回复列表(31|隐藏机器人聊天)』

1. 这不是应该先处理乱码吗
一个帅逼
(/@Ta/2022-04-21 11:22//)

2.

@Dieinwarm,里面有正常中文,都掺一块了微信截啊啊啊啊啊啊啊啊啊_20220421114425.png
手机

(/@Ta/2022-04-21 11:45//)

3.

@童真再见,charCodeAt 应该是不行了,高频字和低频字混在一起的。
image.png

看看是否能从编码上校正,或者是从区位码上入手。

image.png

从区位码上能区分一些,但有的还是混在一起的。
小米MIX2s(白)

(/@Ta/2022-04-21 13:24//)

4.

看起来像是用户名,有没有这种可能,人家就是输入的这样的看起来乱码的用户名呢?

比如有人的用户名是【@undefined】 ,也有 【@手持两把锟斤拷@口中疾呼烫烫烫】呢?

只要系统不崩溃,就让他存在吧。完了用户看到了,不满意的肯定会去自己修改。

如果是系统漏洞,注意产生原因,避免一下就行了。
小米MIX2s(白)

(/@Ta/2022-04-21 13:14//)

5.

这种是不是可以用编码转换一下?
小米8(白)

(/@Ta/2022-04-21 13:33//)

6.

@艾木友尔尔巴,问题在于他不知道什么时候该转什么时候不该转
小米MIX2s(白)

(/@Ta/2022-04-21 13:45//)

7.

@艾木友尔尔巴,试了转换的结果一样...@水木易安,这是购物类的热搜词,里面乱七八糟的啥都有,都显示出来也不好看,一百多万条看不过来,也没啥好办法,算了那就让它显示去吧
手机

(/@Ta/2022-04-21 13:46//)

8.

@童真再见,转换了好像没区别还是一样的字
手机

(/@Ta/2022-04-21 13:48//)

9.

@童真再见,搜索热词那就没法控制了,有可能是不同的客户端,甚至是各种爬虫来的。也有可能国外用户,某些特殊字符集的。改系统为 Unicode 体系才能保留源数据。

我看了下区位码好像还是有点作用的。可以稍微降低一下乱码率。

其次,从运营角度来说,热词不能因为用户输入的多就展示啊。还是需要有审核机制的。

否则有人同行恶意破坏,输入 ddgcd 什么的。。。再反手一举报~
小米MIX2s(白)

(/@Ta/2022-04-21 13:53//)

10.

貌似需要分词,很难搞
https://cway.top

(/@Ta/2022-04-21 14:24//)

11.

@水木易安感谢大佬提醒,我查了里面还真有些沾边的词。。。
手机

(/@Ta/2022-04-21 14:35//)

12.

@童真再见,如果一个词啥也搜不到,肯定不是热搜。所以只要实际搜一下,没有足够的匹配结果,就可以认定为乱码。

(/@Ta/2022-04-21 21:44//)

13.

@童真再见,另一个思路:
汉语热搜通常是简体中文,而乱码有很大概率出现繁体中文。所以可以对文字调用简繁转换。如果转换前后不同,就很可能是乱码。

(/@Ta/2022-04-21 21:45//)

14.

@老虎会游泳,搜索那个不行,刚才试了还是能出结果。我在试试简繁转换看看
手机

(/@Ta/2022-04-21 21:57//)

15.

@童真再见,似乎也没用。看起来需要动用自然语言处理技术了。或者用机器学习,用有监督学习,训练一个分类器,喂给它正常和不正常的文本,不断训练提升分类准确性。还可以自动生成训练数据(UTF-8转GBK后显示等,就能得到乱码文本)。

(/@Ta/2022-04-22 01:59//)

16.

@老虎会游泳,把文本还原成原始数据(如 UTF-8 编码前),然后用一些库/工具来预测编码,可行么?如:

UTF-8 编码。。是能无损还原的。。吧?

(/@Ta/2022-04-22 03:44//)

17.

@无名啊@童真再见,确实可以:

鐜诲翱閰搁腑鍎跨鎷栭瀷 (GBK) -> e78ebbe5b0bfe985b8e9b8ade584bfe7aba5e68b96e99e8b -> 玻尿酸鸭儿童拖鞋 (UTF-8)

图片.png

图片.png

(/@Ta/2022-04-22 06:16//)

18.

@无名啊@童真再见

看起来该乱码是错把UTF-8字符串当作GBK字符串处理造成的。反向编码转换即可还原。

gbkutf8.php,保存为UTF-8编码。

<?php
$arr = [
	'ѩ', 'ȹ', 'ü', 'çµçƒ­æ°´å™¨', '閰掓暖钖у彴涓浣揿鐢', '璺嗘妩阆撴湇鍎跨璁粌', '鐜诲翱閰搁腑鍎跨鎷栭瀷',
];

foreach ($arr as $v) {
	$gbk = mb_convert_encoding($v, 'GBK', 'UTF-8'); // 文件是UTF-8的,想得到GBK字节序列需要进行编码转换
	$hex = bin2hex($gbk);
	echo "$v\t->\t$hex\t->\t$gbk\n"; // 虽然$gbk名义上是“GBK字节序列”,但它实际上是UTF-8字节序列,所以可以直接当作UTF-8字符串输出
}

不能完全还原,因为不能表示为合法GBK字符的UTF-8字符发生了丢失。

图片.png

(/@Ta/2022-04-22 06:32//)

19.

@无名啊@童真再见,看起来有简单处理方法了,像18楼一样进行编码转换,转换完成后匹配一下里面有没有UTF-8汉字,如果有,那原始内容应该就是乱码。

(/@Ta/2022-04-22 06:36//)

下一页 1/2页,共31楼

回复需要登录

7月15日 14:55 星期二

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1