Я хочу отправить двоичные данные со страницы html на мой сервер через JavaScript, но сервер получил не те же байты.Полученные байты, похоже, преобразуются в строку Unicode, см. Следующий пример:
xhr.open('POST', '/check', true);
xhr.setRequestHeader('cache-control', 'no-cache');
xhr.setRequestHeader('Content-Type', 'application/octet-stream');
xhr.send('\x41\xFE\x80');
Сервер должен получить 'Aþ €', но он получает A├¥┬Ç
.
Я проверилмного вещей, таких как:
//xhr.overrideMimeType('text/plain; charset=iso-8859-1');
//xhr.setRequestHeader('Content-type', 'text/plain; charset=iso-8859-1');
//xhr.setRequestHeader('Content-type', 'application/xml; charset=UTF-8');
//xhr.overrideMimeType('text/plain; charset=x-user-defined');
//xhr.overrideMimeType('text\/plain; charset=x-user-defined');
На стороне сервера я запускаю plackup (http://localhost:5000/index.html), и $env->{'CONTENT_LENGTH'}
равно 5, поэтому сервер действительно, кажется, получает5 байтов A├¥┬Ç
.
Любой намек на получение исходных двоичных данных был бы полезен.