Below code:
s1 = “good”
File.new(“test.xml”, “w+”) << s1
It always give a file ANSI encoded. How can I get it UTF-8 encoded?
Thanks.
s1 = “good”
It always give a file ANSI encoded. How can I get it UTF-8 encoded?
Thanks.
Bali Bali wrote:
If your ruby version < “1.9”
$KCODE = “UTF8”
else
#!/usr/bin/env ruby
end
(NOTES : above code is not legal ruby code)
pierr wrote:
Bali Bali wrote:
If your ruby version < “1.9”
$KCODE = “UTF8”
else
#!/usr/bin/env rubyencoding: utf-8 <— this line
end
(NOTES : above code is not legal ruby code)
pierr, Thanks! But looks like it is not working for me.
$KCODE = “UTF-8”
s1 = “good”
It still creates a ANSI file. My Ruby version:
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
It is windows release which should not be related to the issue.
Any idea?
You can try
require 'iconv'
myEncoding = 'iso-8859-15' # or 'CP1252' or what you have
s1 =
‘ü’ s1 = Iconv.new(‘utf-8’, myEncoding ).iconv(s1)
Maybe, you will need the “Byte-order mark”. That are 3 special Bytes
at the very beginning of your utf8-file:
wikipedia.org > utf-8 > “Byte-order mark”
Bali Bali wrote:
Below code:
s1 = “good”
File.new(“test.xml”, “w+”) << s1
It always give a file ANSI encoded. How can I get it UTF-8 encoded?
What do you mean by “ANSI encoded”? Do you mean “ASCII”?
The text “good” is exactly the same in both ASCII and UTF-8, so how do
you know it is one and not the other? Can you give a different example
which shows the problem?
Use “hexdump -C test.xml” to show the exact content of the file, byte by
byte.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs