Имитировать кодировку URL браузера для китайских символов?

Если вы идете сюда: 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

Итак, китайские иероглифы 安徽 URL кодируются как %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() и rawurlencode()?

Как имитировать их способ сделать это в PHP тогда?

1 ответ

Решение
 echo urlencode(mb_convert_encoding('安徽', 'gb2312', 'utf-8')); //  %B0%B2%BB%D5
 echo urlencode('安徽'); // %E5%AE%89%E5%BE%BD
Другие вопросы по тегам