如果你来这里:http://hdjob.bjx.com.cn/AdvanceSearch.shtml
并在源HTML中找到:
<dd><a href="/SearchResult.aspx?workprovince=安徽" target="_blank">安徽</a></dd>如果您将光标放在Chrome或Firefox中的链接上,或者简单地打开它,URL将如下所示:
http://hdjob.bjx.com.cn/SearchResult.aspx?workprovince=%B0%B2%BB%D5因此,中文字符安徽被浏览器自动编码为%B0%B2%BB%D5。
我的问题是如何在PHP中模仿这个?
我试过这些:
echo urlencode("安徽"), PHP_EOL;
echo rawurlencode("安徽");哪项产出:
%E5%AE%89%E5%BE%BD
%E5%AE%89%E5%BE%BD然而,如果你去:
http://hdjob.bjx.com.cn/SearchResult.aspx?workprovince=%E5%AE%89%E5%BE%BD
这只是一个错误的页面,workprovince变量根本没有被正确地解码。
看来Chrome和Firefox对汉字的编码方式都不同于urlencode()和
那么,如何在PHP中模仿他们的做法呢?
发布于 2018-02-09 10:52:42
echo urlencode(mb_convert_encoding('安徽', 'gb2312', 'utf-8')); // %B0%B2%BB%D5
echo urlencode('安徽'); // %E5%AE%89%E5%BE%BDhttps://stackoverflow.com/questions/48703559
复制相似问题