2013-03-03 40 views
0

我試圖打開一個小而簡單的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 
  1. 在Ubuntu環境:

    出口LANGUAGE =的en_US.UTF-8 出口LANG = en_US.UTF- 8 出口LC_ALL =的en_US.UTF-8

  2. iconv轉換

上帝知道我還在4小時內還有什麼。

我真的不明白我怎麼能告訴webrick使用utf-8字符編碼爲它的服務器。

問候, 哈桑

+0

這不是我清楚,如果你寫一個自己的新的Rails應用程序,或者如果你只是使用WEBrick來提供你的文件。你應該首先澄清的是,哪些編碼的文件名nativly在磁盤上。在我看來,來源不是UTF-8,但有些不同。所以你必須告訴你的WEBrick,源字符串編碼是X,然後你必須將它編碼爲UTF-8,以便你的網頁服務器頁面。 – Schlangi 2013-03-15 08:45:08

回答

1

試着在你的文件的頂部添加了「神奇」的評論:

# encoding: utf-8 
+0

已經做到了。列出我嘗試過的東西時錯過了。事實上,這是我做的第一件事。 – saGii 2013-03-04 15:55:04