Я понял, что когда я использовал urlencode или rawurlencode в PHP, кодируя простой символ § (абзац), я получил следующий результат: «% C2% A7».
Но когда я использую escape в Javascript для кодирования этого символа, я получаю только «% A7».
В этом случае у меня возникают проблемы с кодированием при отправке / получении данных между сервером, на котором запущен PHP, и клиентом javascript, пытающимся получить данные через ajax / jquery.
Я хочу иметь возможность писать любой текст, какой захочу. Для этого я кодирую текст и отправляю его в бэкэнд php-скрипт, экранируя данные и отправляя. Когда я получаю его, на стороне php я беру данные из mysql, делаю rawurlencode и отправляю их обратно.
Обе стороны работают в режиме UTF-8. Функция jquery ajax вызывается с "contentType: application/x-www-form-urlencoded:charset=UTF-8"
, сервер mysql настроен для UTF-8 как для клиента, так и для сервера, а скрипт php начинает эхо с header( "application/x-www-form-urlencoded:charset=UTF-8");
Почему PHP производит эту штуку% C2, которая генерирует символ Â на стороне javascript.
Может кому-нибудь помочь?