gftflb 发表于 2019-2-22 13:21:43

一段百思不得其解的CURL代码(php代码)

本帖最后由 gftflb 于 2019-2-22 13:49 编辑
[*]
[*]复制代码

大佬请运行下,看看为什么文本中“小-姐”这个词会莫名其妙的被修改?

只要替换“〗”这个字符,就会把内容中所有“小-姐”这个词,变成“秀”。
百思不得其解。
大佬可以换其他含有“小-姐”这个词的网页url获取试试



替换“〗”的结果





不替换“〗”的结果


hdown 发表于 2019-2-22 15:32:35





就是
小,姐:d0a1 bde3
〗:a1bd
秀:d0e3

这是gbk编码不能正确判断每个汉字的开始结束的问题。
建议把网页先转成utf8,然后你php源代码也用utf8来写,就不会有此类问题了。

gftflb 发表于 2019-2-22 17:02:00


hdown 发表于 2019-2-22 15:32

就是
小,姐:d0a1 bde3
〗:a1bd
按照你解读的原理,终于解决了。

如果需要最终内容为gb2312编码的话,先把获取到的内容全部转成UTF-8编码,再进行过滤替换,最终再次进行编码转换为gb2312,就没这个灵异般的事情了。

大佬牛!

[*]
[*]复制代码

毒瘾 发表于 2019-2-22 16:56:00

太深奥 看不懂 替换

duxingfengyu 发表于 2019-2-22 16:56:00

单 替换,并没有小,姐,姐啊

gftflb 发表于 2019-2-22 16:43:00


求道鱼 发表于 2019-2-22 13:40

在变量content 中搜索‘〗’ 并替换为空
只要替换“〗”这个字符,就会把内容中所有“小-姐”这个词,变成“秀”。
不替换“〗”这个字符,内容中“小-姐”这个词,就没有异样。
“〗”和“小-姐”有什么关系???????
百思不得其解。

gftflb 发表于 2019-2-22 15:46:00


duxingfengyu 发表于 2019-2-22 13:43

单 替换,并没有小,姐,姐啊
只要替换“〗”这个字符,就会把内容中所有“小-姐”这个词,变成“秀”。
不替换“〗”这个字符,内容中“小-姐”这个词,就没有异样。
“〗”和“小-姐”有什么关系???????
百思不得其解。

查无此人 发表于 2019-2-22 16:55:04


查无此人 发表于 2019-2-22 13:48

他是GBk,你是默认utf8。你先转一下字符集试试看
没用,试过了

gftflb 发表于 2019-2-22 15:32:00

https://baike.baidu.com/item/%E5%B0%8F%E5%A7%90/242562?fr=aladdin
一切正常

https://ww1.sinaimg.cn/large/007i4MEmgy1g0f59pu121j30q70b1my0.jpg

duxingfengyu 发表于 2019-2-22 13:27:16

为啥我执行就不替换啊,Windows 下用phpstudy试的。阿里云虚拟主机上也没替换啊~~~直接复制的代码
页: [1] 2
查看完整版本: 一段百思不得其解的CURL代码(php代码)