I have just updated my Ruby into 1.9.0, and tried to run one of my
programs. But I got that response:
zrzutnik.rb:19: invalid multibyte char (US-ASCII)
zrzutnik.rb:19: invalid multibyte char (US-ASCII)
zrzutnik.rb:19: syntax error, unexpected $end, expecting keyword_end
print "Klucz #{kl.inspect} jest nieznany. Zdefiniować
nowy [T/N]? "
^
(at Ruby 1.8 it works fine)
Does it mean I can’t use any longer any non-latin character in my
String-s? WTF?
PS: The file (“zrzutnik.rb”) is encoded all in utf-8 (without BOM).
Am 16.01.2011 16:55, schrieb felix.leg:
Does it mean I can’t use any longer any non-latin character in my
String-s? WTF?
PS: The file (“zrzutnik.rb”) is encoded all in utf-8 (without BOM).
Put this in as the first line (or second if the file has a shebang):
#Encoding: UTF-8
Vale,
Marvin
Hi,
In Ruby 1.9, every String object knows the encoding of itself. So you
need to designate the source code encoding by a magic comment.
The style of a magic comment is:
coding: [source_code_encoding]
You can write other element in a magic comment:
-- coding: utf-8 --
If you write the magic comment, you must write it on the first line
(or the second line if the first line is a shebang) of your source
code.
example (the number of left side is a line number)
1: #!/usr/bin/ruby
2: # coding: utf-8
3: str = “The non-ascii string: Zdefiniowa nowy”
“felix.leg” [email protected] wrote in message
news:[email protected]…
Does it mean I can’t use any longer any non-latin character in my
String-s? WTF?
PS: The file (“zrzutnik.rb”) is encoded all in utf-8 (without BOM).
Hello:
In Ruby 1.9.x you need to explicitly specify the encoding of your
strings to
fit your requirements. Your default string encoding appears to be
US-ASCII
(mine is CP850). If you want it to be UTF-8 use the following to force
the
string to that encoding:
abc = “abc”
puts abc.encoding.name # >> US-ASCII
abc.force_encoding(“UTF-8”)
puts abc.encoding.name # >> UTF-8
James Edward G. II wrote an excellent blog on the topic here
http://blog.grayproductions.net/articles/ruby_19s_string .
Michael
W dniu 16.01.2011 18:09, Michael B. pisze:
^
strings to fit your requirements. Your default string encoding appears
http://blog.grayproductions.net/articles/ruby_19s_string .
Michael
Your proposition will not work, because it first requires a valid
characters between “”. Also, what if they come from external file?
One thing which bugs me yet else is does Ruby have got some core
settings? I use UTF-8 very often so it might be a better solution (as
for my thought) to set it as a default encoding instead of US-ASCII.
Most Ruby-Gems in the Internet are in English and it fits pretty good
with UTF-8 (in addition if some Gem is not in English an author probably
have do some preparation to tell Ruby a right encoding). As I read in
other’s responses, the default encoding varies so I don’t think my
setting for US-ASCII was done on propose for some convention.
felix.leg wrote in post #975280:
I have just updated my Ruby into 1.9.0, and tried to run one of my
programs. But I got that response:
zrzutnik.rb:19: invalid multibyte char (US-ASCII)
zrzutnik.rb:19: invalid multibyte char (US-ASCII)
zrzutnik.rb:19: syntax error, unexpected $end, expecting keyword_end
print "Klucz #{kl.inspect} jest nieznany. Zdefiniować
nowy [T/N]? "
^
(at Ruby 1.8 it works fine)
Does it mean I can’t use any longer any non-latin character in my
String-s? WTF?
PS: The file (“zrzutnik.rb”) is encoded all in utf-8 (without BOM).
You want to know the new String rules in ruby 1.9? Try
(and click through to string19.rb)
I’ve found about 200 rules so far. I’m sticking with 1.8.