Ruby错误无效的多字节字符(US-ASCII)

时间:2013-11-11 15:39:46

标签: ruby compiler-errors

我正在尝试运行找到here

的ruby脚本

但我收到了错误

invalid multibyte char (US-ASCII)

第12行是

http = Net::HTTP.new("twitter.com", Net::HTTP.https_default_port())

有人可以向我解释这意味着什么以及如何解决它,谢谢

2 个答案:

答案 0 :(得分:12)

使用Ruby 1.9运行脚本时,请将脚本的前两行更改为:

#!/usr/bin/env ruby
# encoding: utf-8
require 'net/http'

这告诉Ruby运行支持UTF-8字符集的脚本。如果没有这一行,Ruby 1.9将默认为US_ASCII字符集。

仅供记录:这在Ruby 1.8中不起作用,因为1.8对字符串编码一无所知。而且在Ruby 2.0中不再需要该行,因为Ruby 2.0无论如何都使用UTF-8作为默认值。

答案 1 :(得分:3)

这意味着使用了多字节字符,Ruby未设置为处理它。如果您使用的是旧版本的Ruby,请在文件开头添加以下魔术注释:

# coding: utf-8

如果你使用现代版本的Ruby,那么首先不会出现这个问题。