Lionel Bouton
4/3/2008 4:23:00 PM
Vaibhav Bhandari wrote:
> [Note: parts of this message were removed to make it a legal post.]
>
> 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')
>
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