2013-03-03 1 views
0

작고 간단한 http 서버를 열어 LAN에서 일부 파일 (또는 공용 IP에서 온라인)을 공유하려고했습니다. 약간의 연구에서 나는 python을 발견했습니다. -m SimpleHTTPServer는 작업을 수행하지만 끔찍한 동시 요청 문제가 있습니다. 사용자는 파일 (일반적으로 영화와 같은 대용량 파일)을 다운로드 할 때 브라우징이 매우 느리게 진행된다고합니다.rails webrick httpserver 인코딩 문제

s=WEBrick::HTTPServer.new({DocumentRoot: ".", Port: 8000 }) 
trap("INT"){s.shutdown} 
s.start 

이 심플 관련하여 완벽했다 및 파이썬의 같은 문제가 didnt가 :

은 레일 자신을 프로그래머이기 때문에, 나는이 발견했다. 그러나 나를 당황하게하는 한 가지가 있습니다. 우분투의 파일 이름에 ascii가 인코딩되지 않은 문자가있을 때 US-ASCII의 바이트 순서가 잘못되었습니다.

webrick gem에 대한 내 검색에서 US-ASCII 인코딩을 사용한다고 밝혀졌습니다. 왜 UTF-8이 아닌지 궁금합니다. 내 루비 파일의 시작에서 1 : 내가 포함 물건을 시도 우분투 환경에서

Encoding.default_external = Encoding::UTF_8 
Encoding.default_internal = Encoding::UTF_8 
  1. :

    수출 LANGUAGE =은 en_US.UTF-8 수출 LANG = en_US.UTF- 8 수출 LC_ALL =은 en_US.UTF-8

  2. 의 iconv 변환

그리고 신은 내가 그것에 있었던 4 시간 만에 또 무엇을 알고있다.

나는 정말 서버에 utf-8 문자 인코딩을 사용하도록 webrick에 말할 수는 없다.

관련, 하산 파일의 상단에있는 "마법"코멘트를 추가

+0

, 또는 파일을 제공하기 위해 WEBrick을 사용하기 만하면됩니다. 당신이 명확히해야 할 첫 번째 것은 디스크에있는 파일 이름을 엔코딩하는 것입니다. 소스는 UTF-8이 아니지만 다른 것 같습니다. 따라서 WEBrick에 소스 문자열 인코딩이 X이고 웹 서버 페이지에 대해 UTF-8로 인코딩해야한다고 알려야합니다. – Schlangi

답변

1

시도 :

# encoding: utf-8 
당신은 자신의 새로운 레일 응용 프로그램을 작성한 경우는, 나에게 분명하지 않다
+0

이미했습니다. 내가 시도한 것들을 열거 할 때 빠져 나갔다. 사실 그것은 제가 한 첫 번째 일이었습니다. – saGii