0

我试图打开一个小而简单的 http 服务器来共享 LAN 上的一些文件(或在公共 IP 上在线)。经过一番研究,我发现 python -m SimpleHTTPServer 可以完成这项工作,但它存在可怕的并发请求问题。用户告诉我,当他们下载文件(通常是大文件,如电影)时,浏览变得非常缓慢。

作为一名 Rails 程序员,我发现了这一点:

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. 在我的 ruby​​ 文件的开头:

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 字符编码。

问候,哈桑

4

1 回答 1

1

尝试在文件顶部添加“魔术”注释:

# encoding: utf-8
于 2013-03-03T23:20:01.827 回答