我正在尝试运行找到here
的ruby脚本但我收到了错误
invalid multibyte char (US-ASCII)
第12行是
http = Net::HTTP.new("twitter.com", Net::HTTP.https_default_port())
有人可以向我解释这意味着什么以及如何解决它,谢谢
答案 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,那么首先不会出现这个问题。