Foreign characters

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Tetsuo

    Foreign characters

    How do I get Python to work with foreign characters? When I try to
    print them, I get a unicode error (characters not ASCII). Wasn't
    unicode invented for the express purpose of working with non-ASCII
    characters?
  • Peter Hansen

    #2
    Re: Foreign characters

    Tetsuo wrote:[color=blue]
    >
    > How do I get Python to work with foreign characters? When I try to
    > print them, I get a unicode error (characters not ASCII). Wasn't
    > unicode invented for the express purpose of working with non-ASCII
    > characters?[/color]

    The FAQ might help:



    -Peter

    Comment

    • Dan Bishop

      #3
      Re: Foreign characters

      tsurusennin@sof thome.net (Tetsuo) wrote in message news:<f42f0868. 0307151831.7e89 44b0@posting.go ogle.com>...[color=blue]
      > How do I get Python to work with foreign characters? When I try to
      > print them, I get a unicode error (characters not ASCII).[/color]

      # -*- coding: latin-1 -*-
      greeting = "¡Hola! ¿Cómo estás?"
      print greeting

      Or if you actually need to use Unicode strings:

      unicodeString = "a byte string".decode( 'encoding')
      print unicodeString.e ncode('encoding ')

      Comment

      • Paul Boddie

        #4
        Re: Foreign characters

        tsurusennin@sof thome.net (Tetsuo) wrote in message news:<f42f0868. 0307151831.7e89 44b0@posting.go ogle.com>...[color=blue]
        > How do I get Python to work with foreign characters? When I try to
        > print them, I get a unicode error (characters not ASCII). Wasn't
        > unicode invented for the express purpose of working with non-ASCII
        > characters?[/color]

        Erm, yes. But the problem you're having is undoubtedly occurring when
        you try to send the Unicode data to your console or terminal. I'd
        recommend using the encode method on your Unicode objects as described
        in the thread "Characters in Python" - use groups.google.c om to find
        that discussion.

        On the other hand, if you're using IDLE, I'd suggest trying out
        IDLEfork if you really want to be able to send Unicode data straight
        to the output window. IDLE in Python 2.2.x and below seems to have had
        various issues with Unicode and output, but that's discussed in that
        thread I mentioned.

        I note that the content of the most relevant entry in the Python FAQ
        can be regarded as being somewhat confusing:



        Notably this statement (in the context of the classic UnicodeError):

        "This error indicates that your Python installation can handle only
        7-bit ASCII strings."

        I doubt that even if one makes the distinction between strings and
        Unicode objects, as I often do myself, that Python has ever been
        unable to handle 8-bit strings. Moreover, the statement gives the
        impression that various Python installations exist which know about
        Unicode (and related encodings) but can't deal with it. Perhaps the
        entry ought to be updated with some of the tips given in previous
        threads, and that more questions and answers need adding to the FAQ
        (which I'm happy to do, by the way, if it's seen as being worthwhile).

        Paul

        Comment

        Working...