2010-05-12 2 views
0

Признайтесь мне описать мои вопросы в ситуации-ориентированным способом:Может ли JavaScript обрабатывать двоичные данные?

Предположим, Internet Explorer по-прежнему является веб-браузер, доминирующая (Firefox имеет документ для бинарной обработки):

XMLHTTPRequest.responseText или XMLHTTPRequest.responseXML в Internet Explorer желание txt или xml/xhtml/html, но как насчет ответа сервера xmlHttprequest с приложением MIME TYPE/октетом? Все ли символы в строке ответа будут меньше 256? (каждый символ этой строки < 256)? Большое спасибо за прямой ответ, у меня нет среды веб-сервера, поэтому я не знаю, как это проверить.

Поскольку использование txt или xml имеет проблему кодирования набора символов, и я не знаю, как обрабатывать # [[[узел CDDATA одного закодированного xml (например: UTF-8, ASCII, GB18030) с JavaScript, когда я получаюNodeText, возвращает docObj байтовый или декодированный символ? Если бы это был декодированный символ, который в соответствии с заголовком указывал charSet в httpresponse, все было бы неправильно.

Чтобы избежать беспорядка с charSet, я хотел бы, чтобы сервер отвечал на данные октета и данные принудительной строки, которые должны быть закодированы как UTF-8, но еще один charSet в двоичном формате.

Если ответ является восьмеричным, поэтому я предполагаю, что браузер не будет пытаться декодировать ответ «txt».

Это странно? Или пропустить понимание основных вещей?

EDIT: Я считаю, что вопрос задает вопрос: Может ли JavaScript безопасно обрабатывать строки, которые не кодируются в Юникоде? В чем проблемы с попыткой сделать это?

EDIT: нет, нет, я имею в виду, если http-заголовок: content-type - «application/octet», Internet Explorer попытается декодировать его как (16 бит Unicode или локальный набор настроек Internet Explorer), когда я получу XMLHttpRequestobj.responseText использует JavaScript? Или он (Internet Explorer) просто переносит каждый байт тела ответа как строки JavaScript, затем каждый символ в этой строке меньше или равен 256 (символ < = 256).

Я говорю на языке Марса? К сожалению, если бы я был Марсианом, я бы стал туристом без вопросов. Однако я в стране, которая имеет по крайней мере одно имущество с Марсом: RED.

+3

Пожалуйста, переформатируйте. Это непонятно как есть. –

+0

Я думаю, он хочет знать, как получить двоичные данные с помощью AJAX. – edwin

+0

Вы можете установить веб-сервер локально, то есть на своей рабочей станции в Linux (например, [Ubuntu] (https://help.ubuntu.com/community/ApacheMySQLPHP), [Arch] (http://wiki.archlinux.org/ index.php/LAMP) и т. д.), [Mac OS X] (http://mamp.info/en/index.html) и [Windows] (http://www.youtube.com/watch?v= t0QS6Z_EuGc). –

ответ

1

Если я правильно понял ваш вопрос, то короткий ответ: да, каждый байт будет содержать значение от 0 до 255 (без знака, то есть). Это просто характер байтов, состоящий из 8 бит.

Но зачем вам это нужно? Какие двоичные данные вы хотите обработать с помощью JavaScript?

Просто FYI, читайте Mastering Ajax, Part 3: Advanced requests and responses in Ajax:

Это позволяет определить [...] если сервер попытается вернуть двоичные данные вместо HTML, текст или XML (которые все три очень проще процесс в JavaScript, чем двоичный данных).

(под Useful HEAD requests).

В случае, если вам интересно, я нашел эту статью с простым Google search.

+0

, потому что использование txt или xml имеет проблему кодировки набора символов, и я не знаю, как обрабатывать # [[[CDDATA-узел одного закодированного xml (ex: utf-8, ascii, gb18030) с javascript, когда я получаюNodeText , возвращает ли docObj байтовый или декодированный символ? если он был декодированным символом, который в соответствии с заголовком, обозначенным charSet в httpresponse, был бы неправильным. – Johnny

+0

@ Джонни: Я полагаю, что ваш вопрос занижен, потому что это непонятно. Я понимаю, что ваш словарный запас не так хорош, но мы действительно должны думать о том, что вы пытаетесь спросить. Что касается вашего второго комментария: вы должны обновить свой вопрос с помощью этой информации. Было бы также полезно, если вы предоставите соответствующий исходный код. В общем, заголовки HTTP перекрывают кодировку внутри файла. См. Http://www.w3.org/International/O-charset и http://www.w3.org/International/tutorials/tutorial-char-enc/ –

+0

, чтобы избежать беспорядка с charSet, я бы хотел, чтобы сервер данные данных octect и данные силовых строк должны быть закодированы как utf-8, но еще один charSet. если ответ восьмеричный, поэтому я думаю, что браузер не будет пытаться декодировать ответ «txt» делает это странно? или пропустить понимание основных вещей? – Johnny

Смежные вопросы