4

我正在尝试运行在此处找到的 ruby​​ 脚本

但我得到了错误

invalid multibyte char (US-ASCII)

对于第 12 行,这是

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

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

4

2 回答 2

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.0UTF-8无论如何都将其用作默认值。

于 2013-11-11T15:53:01.373 回答
3

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

# coding: utf-8

如果您使用现代版本的 Ruby,那么这个问题一开始就不会出现。

于 2013-11-11T15:52:07.840 回答