Windows XP unicode and escape sequences

Discussion in 'Python' started by Guest, Dec 12, 2007.

  1. Guest

    Guest Guest

    I mainly work on OS X, but thought I'd experiment with some Python code on XP. The
    problem is I can't seem to get these things to work at all.

    First of all, I'd like to use Greek letters in the command prompt window, so I was going to
    use unicode to do this. But in the command prompt, the unicode characters are displaying
    as strange looking characters. I tried installing the 'Bitstream Vera Sans Mono' font in hopes
    it had all the characters I needed but this didn't seem to work either. Is the problem the font?
    And if so, is there a certain font that has unicode '03B1', etc? Here's some code I tried:

    v = u'\u03B1\u03B2\u03B3'.encode('utf-8')
    print v #just displays squares

    The next problem I'm having is I can't seem to color the text with ansi escape sequences. I
    added "device=%SystemRoot%\system32\ansi.sys" to the bottom of the CONFIG.NT file, and experimented with code like this:

    print chr(27) + "[36mTest" + chr(27) + "[0m"

    >From what I found on-line, ascii character 27 seems to be the escape key I need, but I can't

    seem to get it to work. It just displays an arrow.

    If anyone has any thoughts, I'd love to hear them.

    Thanks!

    Jay
    Guest, Dec 12, 2007
    #1
    1. Advertising

  2. Guest

    John Roth Guest

    On Dec 12, 2:51 pm, <> wrote:
    > I mainly work on OS X, but thought I'd experiment with some Python code on XP. The
    > problem is I can't seem to get these things to work at all.
    >
    > First of all, I'd like to use Greek letters in the command prompt window, so I was going to
    > use unicode to do this. But in the command prompt, the unicode characters are displaying
    > as strange looking characters. I tried installing the 'Bitstream Vera Sans Mono' font in hopes
    > it had all the characters I needed but this didn't seem to work either. Is the problem the font?
    > And if so, is there a certain font that has unicode '03B1', etc? Here's some code I tried:
    >
    > v = u'\u03B1\u03B2\u03B3'.encode('utf-8')
    > print v #just displays squares


    You've got two problems. First, you don't need to encode it; if the
    command prompt window displayed your output after encoding it would
    display the multi-byte form of your characters. You should just send
    it a unicode object.

    Second, check the .encoding attribute of the sys.stdout object.
    Therein lies enlightenment about what the command prompt window will
    accept.

    No info on your other problem.

    John Roth

    >
    > If anyone has any thoughts, I'd love to hear them.
    >
    > Thanks!
    >
    > Jay
    John Roth, Dec 14, 2007
    #2
    1. Advertising

  3. Guest

    Tim Roberts Guest

    <> wrote:

    >I mainly work on OS X, but thought I'd experiment with some Python code on XP. The
    >problem is I can't seem to get these things to work at all.
    >
    >First of all, I'd like to use Greek letters in the command prompt window, so I was going to
    >use unicode to do this. But in the command prompt, the unicode characters are displaying
    >as strange looking characters. I tried installing the 'Bitstream Vera Sans Mono' font in hopes
    >it had all the characters I needed but this didn't seem to work either. Is the problem the font?
    >And if so, is there a certain font that has unicode '03B1', etc? Here's some code I tried:


    It's not the font. (OK, it's partially the font.) To display Greek
    characters to the console, your console session has to be set for a code
    page that includes Greek characters.

    >The next problem I'm having is I can't seem to color the text with ansi escape sequences. I
    >added "device=%SystemRoot%\system32\ansi.sys" to the bottom of the CONFIG.NT file, and experimented with code like this:
    >
    >print chr(27) + "[36mTest" + chr(27) + "[0m"
    >
    >From what I found on-line, ascii character 27 seems to be the escape key I need, but I can't
    >seem to get it to work. It just displays an arrow.


    CONFIG.NT only affects 16-bit programs running in the NTVDM (the Virtual
    DOS Machine).

    32-bit console apps (which Python is) simply cannot use ANSI escape
    sequences. You have to use the Win32 APIs to do color. There are
    curses-like libraries available for Python. Or:

    http://www.effbot.org/zone/console-handbook.htm
    --
    Tim Roberts,
    Providenza & Boekelheide, Inc.
    Tim Roberts, Dec 15, 2007
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. harrelson
    Replies:
    3
    Views:
    3,898
    Craig Ringer
    Dec 10, 2004
  2. slomo
    Replies:
    5
    Views:
    1,528
    Duncan Booth
    Dec 2, 2007
  3. Guest
    Replies:
    4
    Views:
    709
    Martin v. Löwis
    Dec 19, 2007
  4. Jeremy
    Replies:
    1
    Views:
    802
    Alex Willmer
    Jan 11, 2011
  5. Jeremy
    Replies:
    0
    Views:
    576
    Jeremy
    Jan 11, 2011
Loading...

Share This Page