Ответ заключается в том, что вы не можете знать это наверняка, поскольку это может измениться от запроса к запросу, особенно если это не всегда отправляется из формы, но иногда отправляется с помощью ajax или вводится пользователем непосредственно в адресную строку.
Я работаю с заявкой на польском языке.Приложение работает с кодовой страницей ISO-8859-2, и весь вывод html подается в этой кодировке.
Приложение получает запрос в двух разных кодировках, в зависимости от контекста запроса:
- Если запрос сделан в результате отправки формы, то кодировка такая же, какHTML-страница с отправленной формой.Я думаю, что это может быть изменено с атрибутом accept-charset элемента формы, но я не пробовал его.
- Если запрос сделан с Ajax, то это всегда UTF-8 (по крайней мере, в Chrome и Firefox,так как наш клиент использует только эти браузеры).
- Если запрос вводится вручную в URL, то обычно это UTF-8, но если это была закладка или что-то подобное, то это может быть другая кодировка(зависит от того, как была создана закладка).
Так что, на самом деле невозможно узнать наверняка.Если можете, всегда используйте UTF-8.В противном случае используйте обнаружение кодировки (проверьте, является ли это UTF-8, если нет, используйте более вероятную кодировку, основанную на языке, используемом вашим приложением).
Я использую следующий код:
<?php
$t = 'zażółć gęślą jaźń';
echo mb_detect_encoding($t, 'UTF-8,ISO-8859-2');
С уважением, SWilk