Мое веб-приложение PHP работает на кодировке ISO-8859-1. Когда я отправляю HTML-форму с accept-charset = «ISO-8859-1» на сервер PHP, это то, что я получаю на стороне сервераИспользование Javascript/jQuery Replicate HTML Form POST с ISO-8859-1 charset
a. Символы ASCII в оригинальной форме.
b. Специальные символы, которые могут быть представлены в ISO-8859-1 в их первоначальном виде.
c. Специальные символы, которые не могут быть представлены в ISO-8859-1, преобразуются в объекты HTML.
Все данные принимаются в качестве надлежащих символов ISO-8859-1. Я хочу реплицировать то же поведение с помощью JavaScript или jQuery. Все решения, которые я пробовал, в конечном итоге отправляют все специальные символы в PHP-файл как двойные кодированные символы, и я должен их utf8_decode.
Я сделал рабочий раствор следующим образом:
а. конвертировать неподдерживаемые специальные символы в объекты HTML.
b. отправьте запрос на отправку JavaScript AJAX с помощью XMLHttpRequest/ActiveXObject. Для этого мне нужно «encodeURIComponent()» данные.
c. получать данные на сервере и «utf8_decode()», потому что «encodeURIComponent()» кодирует специальные символы как UTF-8.
Я хочу использовать JavaScript-решение, которое гарантирует, что я получаю надлежащие ISO-8859-1 кодированные данные от POST на стороне сервера, так что мне не нужно делать «utf8_decode()». Другими словами, я хочу, чтобы решение JavaScript точно воспроизводило поведение формы с помощью accept-charset = «ISO-8859-1».
Спасибо
* Мое веб-приложение PHP работает на кодировке ISO-8859-1 * - В 21 веке? Зачем?! – Quentin
@Quentin Потому что это не приложение 21 века :). Я разработчик и, конечно, принадлежит моему клиенту. Приложение настолько широко распространено, что перенос кода, и особенно база данных с миллиардами записей в UTF-8, не является первым вариантом. – Adee