У меня есть букмарклет Javascript, который использует encodeURIcomponent
для передачи URL-адреса текущей страницы на серверную сторону, а затем использует urldecode
на стороне сервера для возврата символов.
Проблема в том, что когда закодированный символ не в utf-8 (в моем случае это gb2312, но может быть и что-то другое), и когда сервер делает urldecode
, декодированный символ становится квадратным. Что, очевидно, не так, как это выглядело до кодирования.
Это букмарклет, ввод может быть любым, поэтому я не могу просто определить «кодировать как gb2312» в js или «декодировать как gb2312» в php-скриптах.
Итак, есть ли правильный способ использования encodeURIcomponent
, который передает кодировку символов вместе с содержимым, а затем декодирование может выбрать правильную кодировку для ее декодирования?