已掉线,重新登录

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

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


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

20.

@无名啊@老虎会游泳,好用好用。帖子里有几个词不能还原是被我删了几个字符。刚在搜自然语言处理,好像很强大
手机

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

21.

JS实现(点击“HTML代码”查看代码)。

引用的js可从这里找到:https://github.com/bestmike007/gbk-lite

HTML代码

(/@Ta/2022-04-22 07:50//)

22.

@老虎会游泳,js代码不显示呢,我登录了
手机

(/@Ta/2022-04-22 07:22//)

23.

@童真再见,点击“HTML代码”

(/@Ta/2022-04-22 07:24//)

24.

@老虎会游泳,不懂js...我把代码放在网页啥都没显示
手机

(/@Ta/2022-04-22 07:30//)

25.

@童真再见,你看不到演示结果吗?
因为 https://hu60.cn/q.php/api.webplug-file.1_public_gbk-lite-min.js 登录可见,所以只能在虎绿林看到演示结果。如果想用于其他网站,你需要下载这个文件然后放在你站,然后修改网页中引用的链接。

图片.png

(/@Ta/2022-04-22 07:49//)

26.

@老虎会游泳,我修改了引用的js,现在不需要登录就可见了,也能直接用于其他网站了。

(/@Ta/2022-04-22 07:51//)

27.

@老虎会游泳,嗯现在能看到了,刚才显示空白。

$obj='我直接在php里这样写的';
$gbk = mb_convert_encoding($obj, 'GBK', 'UTF-8'); // 文件是UTF-8的,想得到GBK字节序列需要进行编码转换
$hex = bin2hex($gbk);
//	echo "$v\t->\t$hex\t->\t$gbk\n<br>"; // 虽然$gbk名义上是“GBK字节序列”,但它实际上是UTF-8字节序列,所以可以直接当作UTF-8字符串输出
if(mb_detect_encoding($gbk, 'UTF-8', true)){ // 判断结果false
$obj=$gbk;
}else{
$obj=$obj;
}

微信图片_20200511182817.gif
手机

(/@Ta/2022-04-22 08:04//)

28.

一群不愧真大佬
小米8(白)

(/@Ta/2022-04-22 08:35//)

29.

@童真再见,嗯,这样很聪明。原本计划丢弃的内容,现在也可以正常显示了

你给的那些例子都能完美转换吗?有没有转换不完整或者失败的例子?

if(mb_detect_encoding($gbk, 'UTF-8', true)){ // 判断结果false
$obj=$gbk;
}else{
$obj=$obj;
}
(/@Ta/2022-04-22 13:08//)

30.

@老虎会游泳,有,有些转换后还会缺些字,多出个方块符号,然后我又加了个判断,计算有几个符号,小于三个直接把符号在过滤下。

【姘存櫠鐏杩樻槸鍚搁鐏】【锟斤拷锟斤拷锟斤拷农锟矫筹拷】【鏉庡瓙锲珯涓轰粈涔埚彨鏉庡瓙锲】像这些转换后还会有很多符号我还没想到怎么处理。。。

    function utf8_count($a,$b=1)
    {
        preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/", $a, $ab);
if($b==1){
        return count($ab[0]);
}else{
        return implode("",$ab[0]);
}

    }

$objac='姘存櫠鐏ソ杩樻槸鍚搁鐏ソ'; //【鐏姱缁掗様鑵胯濂抽珮鑵】这种转换后还有少量符号的都能过滤
$gbk = mb_convert_encoding($objac, 'GBK', 'UTF-8'); // 文件是UTF-8的,想得到GBK字节序列需要进行编码转换
$hex = bin2hex($gbk);
//echo "$objac\t->\t$hex\t->\t$gbk\n<br>"; // 虽然$gbk名义上是“GBK字节序列”,但它实际上是UTF-8字节序列,所以可以直接当作UTF-8字符串输出
	if(mb_detect_encoding($gbk, 'UTF-8', true)){ // 判断结果false
		echo $gbk;
	}else{
		if((mb_strlen($gbk, 'UTF-8')-utf8_count($gbk)) < 3){
			echo utf8_count($gbk,2);
		}else{
			echo $objac;
		}
	}

手机

(/@Ta/2022-04-22 14:07//)

31.

@老虎会游泳,还以为是GBK/BIG5/...存储的,误用UTF8解码了

还想着能无损还原成Unicode码点,再编码预测来解码。。

想想也是,这种方块字乱码,应该是误用中文编码方式解码才对

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

上一页 2/2页,共31楼

回复需要登录

7月17日 08:23 星期四

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1