我试图打开一个小而简单的 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
在ubuntu环境中:
导出 LANGUAGE=en_US.UTF-8 导出 LANG=en_US.UTF-8 导出 LC_ALL=en_US.UTF-8
Iconv 转换
天知道我在这 4 个小时里还有什么。
我真的不明白如何告诉 webrick 对其服务器使用 utf-8 字符编码。
问候,哈桑