UTF-8 in Ruby

hi all -

Whats the recommended way to ensure that a string sent over the wire is
UTF-8. I want to do a post to a web-service and the content needs to be
UTF-8.

Whats the best way to do -
“content”.encoding(‘UTF-8’)

Thanks in advance.

regards,
Vaibhav

Vaibhav B. wrote:

Hum, it depends on your context. If you don’t know anything about the
string and must make a guess, charguess or chardet are good tools.

Note that if you simply want to filter out content which can’t be utf-8
the following can be used,

class String
def utf8_ok?
utf8_ok = true
begin
# will raise an error (Iconv::InvalidSequence from memory)
# on invalid utf-8 content
Iconv.iconv(utf-8, utf-8, self)
rescue
utf8_ok = false
end
utf8_ok
end
end

I use a slighty more complex version where I cache an Iconv instance.
This helped solve my UTF-8 problems with one of my databases.

Lionel

On Thu, Apr 3, 2008 at 6:05 PM, Vaibhav B. [email protected]
wrote:

regards,
Vaibhav

Maybe:

require ‘kconv’
“content”.toutf8

^ manveru

UTF-8 in Ruby
Posted by Vaibhav B. (Guest) on 03.04.2008 18:05
hi all -

Whats the recommended way to ensure that a string sent over the wire is
UTF-8. I want to do a post to a web-service and the content needs to be UTF-8.

Whats the best way to do -
“content”.encoding(‘UTF-8’)

Thanks in advance.

regards,
Vaibhav

You may also use UTF8REGEX in methods like:

“str”.utf8?

“str”.clean_utf8

See:

http://snippets.dzone.com/posts/show/4527

Cheers,

jk