2010-06-30 4 views
0

У меня есть встроенный веб-сервер, написанный на C, используя библиотеки uIP, в микроконтроллере, который выводит следующий статический текст в ответ на http get. Ниже показано, как буквенная строка C:Есть ли какой-то ответ HTTP GET, который я могу добавить, чтобы исправить проблему кодирования в клиентском веб-браузере?

"HTTP/1.0 200 OK\r\n" 
"Server: UIP/1.0 (http://www.something.com/)\r\n" 
"Content-type: text\html\r\n" 

Сразу же после этого приходит доктайп строку \ и ... \ </html> тело страницы, запрошенной \. Я не писал этот код, но он был передан мне. Теперь я пробовал его в Opera, Firefox и Internet Explorer. На всей веб-странице используется Ansi/C, а не специальные строки или байты. Но он загружается и отображается правильно только в Opera. По какой-то причине этот конкретный веб-браузер на основе uIP не будет отображаться в IE 8 или Firefox.

! [Альтернативный текст] [1]

Что я могу добавить к заголовкам HTTP, чтобы сделать мой микро-веб-сервер кодирование основного/по умолчанию C/ANSI кодового будет распознана для всех браузеров, а не просто опера?

ответ

4

Попробуйте заменить статический текст этого:

"HTTP/1.0 200 OK\r\n" 
"Server: UIP/1.0 (http://www.something.com/)\r\n" 
"Content-type: text/html; charset=utf-8\r\n" 

ПРИМЕЧАНИЕ: обратный слеш ('\') символ является Esacpe характер, в вашей статической строки, вы сделали "\ ч" с "текст \ HTML"

ПРИМЕЧАНИЕ: "кодировка = UTF-8" часть только полезно, если ваши файлы в кодировке UTF-8 кодирование

+0

Это все. кроме получающегося мне требуется charset = iso-8859-1 (latin1). –

+0

Я думаю, что это просто БРИЛЛИАНТ, что это отлично работало с Opera, но никто другой, но внезапно последние браузеры меняют свои алгоритмы обнаружения по умолчанию. –

+0

это обратная косая черта ... DOH !!!!! Благодарю. –