我試圖打開一個小而簡單的http服務器來共享LAN上的一些文件(或公共IP上的在線文件)。在一些研究中,我發現python -m SimpleHTTPServer可以完成這項工作,但它有可怕的併發請求問題。用戶告訴我,當他們下載文件(通常是大文件,如電影)時,瀏覽變得非常緩慢。rails webrick httpserver編碼問題
作爲一個程序員的軌道自己,我發現這一點:
s=WEBrick::HTTPServer.new({DocumentRoot: ".", Port: 8000 })
trap("INT"){s.shutdown}
s.start
這是完美至於簡單且沒有必須像Python的問題。但有一件事讓我感到困惑。當我的Ubuntu上的文件名有字符不ascii編碼它會引發錯誤:US-ASCII中的無效字節序列。
我對webrick gem的搜索顯示它採用US-ASCII編碼。我不知道爲什麼不是UTF-8。我試過的東西,包括: 1.在我的紅寶石文件的開頭:
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
在Ubuntu環境:
出口LANGUAGE =的en_US.UTF-8 出口LANG = en_US.UTF- 8 出口LC_ALL =的en_US.UTF-8
iconv轉換
上帝知道我還在4小時內還有什麼。
我真的不明白我怎麼能告訴webrick使用utf-8字符編碼爲它的服務器。
問候, 哈桑
這不是我清楚,如果你寫一個自己的新的Rails應用程序,或者如果你只是使用WEBrick來提供你的文件。你應該首先澄清的是,哪些編碼的文件名nativly在磁盤上。在我看來,來源不是UTF-8,但有些不同。所以你必須告訴你的WEBrick,源字符串編碼是X,然後你必須將它編碼爲UTF-8,以便你的網頁服務器頁面。 – Schlangi 2013-03-15 08:45:08