2013-11-11 2 views
4

Я пытаюсь запустить скрипт рубин найден hereрубин ошибка неверный многобайтный символ (US-ASCII)

, но я получаю ошибку

invalid multibyte char (US-ASCII) 

для линии 12, которая является

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

может кто-нибудь объяснить мне, что это значит и как я могу это исправить, спасибо

ответ

12

При запуске сценария с Ruby 1.9, изменить первые две строки сценария:

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

Это говорит Руби, чтобы запустить сценарий с поддержкой множества UTF-8 символов. Без этой строки Ruby 1.9 по умолчанию будет установлен набор символов US_ASCII.

Только для записи: это не будет работать в Ruby 1.8, потому что 1.8 ничего не знает о строковых кодировках. И строка больше не нужна в Ruby 2.0, потому что Ruby 2.0 в любом случае использует UTF-8.

3

Это означает, что используется многобайтовый символ, и Ruby не настроен на его обработку. Если вы используете старую версию Ruby, затем положить следующий магический комментарий в начале файла:

# coding: utf-8 

Если вы используете современную версию Ruby, то эта проблема будет не возникает в первую очередь.

Смежные вопросы