Re: unicode conversion

Joe Shaw <[email protected]>
Newsgroups gmane.linux.rpm.metadata
Message-ID <1067277224.25913.21.camel@bacon>
On Sat, 2003-10-25 at 02:04, seth vidal wrote:
> hi all,
>   this is what I did, comments?
> 
> def utf8String(string):
>     """hands back a unicoded string"""
>     try:
>         string = unicode(string)
>     except UnicodeError, e:
>         newstring = ''
>         for char in string:
>             if ord(char) > 127:
>                 newstring = newstring + '#'
>             else:
>                 newstring = newstring + char
>         newstring = newstring + 'NOTE: Characters replaced outside of UTF8 Range'
>         return unicode(newstring)
>     else:
>         return string

I'd suggest this instead:

try:
    # this will validate UTF-8
    string = unicode(string, 'utf-8', 'strict')
except UnicodeError, e:
    # replaces invalid chars with '?'
    string = unicode(string, 'iso-8859-1', 'replace')

return string

Joe
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.