Unicode raw string containing \u

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • OKB (not okblacke)

    Unicode raw string containing \u

    I'm trying to write a unicode raw string literal, and I seem to be
    running up against a conflict between the \uXXXX unicode character
    escape and the need to have a literal \u (i.e., backslash followed by a
    lowercase letter U) in the string.

    If I do ur"\universe" I get a UnicodeDecodeEr ror because (I think)
    it tries to interpret \universe as a Unicode escape. But if I do
    ur"\\universe " I get a string that contains two backslashes followed by
    the word "universe".

    How can I specify a unicode raw string literal that contains a
    single backslash followed by the word "universe"?

    --
    --OKB (not okblacke)
    Brendan Barnwell
    "Do not follow where the path may lead. Go, instead, where there is
    no path, and leave a trail."
    --author unknown
  • Steven D'Aprano

    #2
    Re: Unicode raw string containing \u

    On Sun, 28 Oct 2007 06:58:48 +0000, OKB (not okblacke) wrote:
    I'm trying to write a unicode raw string literal, and I seem to be
    running up against a conflict between the \uXXXX unicode character
    escape and the need to have a literal \u (i.e., backslash followed by a
    lowercase letter U) in the string.
    >
    If I do ur"\universe" I get a UnicodeDecodeEr ror because (I think)
    it tries to interpret \universe as a Unicode escape. But if I do
    ur"\\universe " I get a string that contains two backslashes followed by
    the word "universe".
    That's because in a raw string, \\ means two backslashes.
    How can I specify a unicode raw string literal that contains a
    single backslash followed by the word "universe"?
    The usual way.
    >>word = u'\\universe'
    >>len(word)
    9
    >>word[0]
    u'\\'
    >>word[1]
    u'u'
    >>print word
    \universe
    >>word
    u'\\universe'


    --
    Steven.

    Comment

    • OKB (not okblacke)

      #3
      Re: Unicode raw string containing \u

      Steven D'Aprano wrote:
      > How can I specify a unicode raw string literal that
      > contains a
      > single backslash followed by the word "universe"?
      >
      The usual way.
      >
      >>>word = u'\\universe' len(word) 9 word[0] u'\\' word[1] u'u'
      >>>print word \universe word u'\\universe'
      That doesn't answer my question, since I asked for a unicode RAW
      string literal. Is this not possible? (I was able to get what I want
      using ur"\u005Cuniver se", although this is not totally ideal.)

      --
      --OKB (not okblacke)
      Brendan Barnwell
      "Do not follow where the path may lead. Go, instead, where there is
      no path, and leave a trail."
      --author unknown

      Comment

      • =?ISO-8859-15?Q?=22Martin_v=2E_L=F6wis=22?=

        #4
        Re: Unicode raw string containing \u

        That doesn't answer my question, since I asked for a unicode RAW
        string literal. Is this not possible? (I was able to get what I want
        using ur"\u005Cuniver se", although this is not totally ideal.)
        It's a design flaw in Unicode raw string literals that they still
        interpret \u escapes. And yes, your notation is one way to get what
        you want; another is u"\\"+r"univers e", although I'm unsure whether
        that meets your requirements.

        Regards,
        Martin

        Comment

        Working...