2010-06-30 3 views
0

필자는 마이크로 컨트롤러에 uIP 라이브러리를 사용하여 C로 작성된 내장 웹 서버를 가지고 있습니다.이 서버는 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를 사용하며 특수 문자열이나 바이트는 사용하지 않습니다. 하지만 오페라에서만 제대로로드되고 표시됩니다. 어떤 이유로이 특정 uIP 기반 웹 브라우저는 IE 8 또는 Firefox에서 렌더링되지 않습니다.

! [대체 텍스트] [1]은 기본/기본 C의 내 마이크로 웹 서버 인코딩을 확인하기 위해 HTTP 헤더에 추가 할 수있는 무엇

/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로"

참고와 "\ h를"파일이 UTF-8 인코딩

공하는 경우 "문자 집합 = UTF-8"부분에만 유용
+0

이것은 그 것이다. 단, charset = iso-8859-1 (latin1)이 필요하다는 것을 알 수 있습니다. –

+0

필자는 Opera가 제대로 작동했지만 다른 사람은 아무렇지도 않게 작동한다고 생각합니다.하지만 갑자기 최신 브라우저가 기본 인코딩 감지 알고리즘을 변경했습니다. –

+0

백 슬래시가 ... DOH !!!!! 감사. –