programing

Rails 및 Ruby 1.9의 유효하지 않은 멀티 바이트 문자 (US-ASCII)

new-time 2020. 5. 9. 10:59
반응형

Rails 및 Ruby 1.9의 유효하지 않은 멀티 바이트 문자 (US-ASCII)


Rails 2.3.4에서 Ruby 1.9.1을 사용하고 있습니다. 애플리케이션은 텍스트 입력을 처리하는 것입니다.같은 것을 시도하면 (내부 인용 부호가 다르게 보입니다)

text = "”“"

다음과 같은 오류가 발생합니다.

#<SyntaxError: /Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: invalid multibyte char (US-ASCII)
/Users/tammam56/rubydev/favquote/lib/daemons/twitter_quotes_fetch.rb:54: syntax error, unexpected $end, expecting keyword_end

사용자가 따옴표를 입력 할 수 있으므로 따옴표를 사용해야하는데이를 설명해야합니까?어떤 아이디어?


ASCII가 아닌 문자를 사용하는 스크립트에 마법의 설명을 추가해 보셨습니까? 스크립트 상단에 있어야합니다.

#!/bin/env ruby
# encoding: utf-8

그것은 매력처럼 나를 위해 일했습니다.


프로젝트의 모든 소스 파일에 마법의 주석을 쉽게 추가하려면

magic_encoding

gem을 사용할 수 있습니다

sudo gem install magic_encoding

그런 다음

magic_encoding

앱의 루트에서 터미널을 호출 하십시오.


방금 솔루션을 추가하고 싶습니다 :



ö, ü, ä와 같은 독일어 움라우트를 사용하고 동일한 오류가 발생했습니다.

 

@Jarek Zmudzinski가 방금 작동 방식을 알려 주었지만 여기 있습니다.컨트롤러 상단에이 코드를 추가하십시오

# encoding: UTF-8

(예 : 움라우트와 함께 플래시 메시지 사용)내 컨트롤러의 예 :

# encoding: UTF-8
class UserController < ApplicationController

이제 ö, ä, ü, ß, ""등을 사용할 수 있습니다.


루비 2.0부터는 추가 할 필요가 없습니다

# encoding: utf-8

. UTF-8이 자동으로 감지됩니다.


기울어 진 큰 따옴표는 ASCII 문자가 아닙니다. 오류 메시지는 '멀티 바이트'라는 오해의 소지가 있습니다.


그것은 나를 위해 일했다 :

$ export LC_ALL=en_US.UTF-8
$ export LANG=en_US.UTF-8

참고 URL :

https://stackoverflow.com/questions/1739836/invalid-multibyte-char-us-ascii-with-rails-and-ruby-1-9

반응형