Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #5191

Re: unicode by default

Path csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder2.enfer-du-nord.net!feeder.news-service.com!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <lis01361@izone.net.au>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.005
X-Spam-Evidence '*H*': 0.99; '*S*': 0.00; 'escape': 0.04; 'ascii': 0.07; 'bytes.': 0.07; 'encoded': 0.07; 'outcome': 0.07; "editor's": 0.09; 'encoding.': 0.09; 'exception.': 0.09; 'presume': 0.09; 'utf-8': 0.09; 'output': 0.12; 'am,': 0.14; 'wrote:': 0.14; '(1).': 0.16; '(hopefully': 0.16; 'coded': 0.16; 'codes,': 0.16; 'consult': 0.16; 'cp1252': 0.16; 'hex': 0.16; 'ignores': 0.16; 'received:203.24': 0.16; 'renders': 0.16; 'subject:unicode': 0.16; 'sys.stdout': 0.16; 'input': 0.18; 'bytes': 0.19; 'command': 0.19; 'seeing': 0.21; '(or': 0.22; 'code': 0.22; 'header:In-Reply-To:1': 0.22; '(but': 0.22; 'e.g.': 0.22; 'file,': 0.22; 'itself.': 0.22; 'thu,': 0.22; 'incorrect': 0.23; 'sequences.': 0.23; 'byte': 0.25; 'detect': 0.25; 'extract': 0.25; 'specify': 0.25; 'assume': 0.25; 'windows': 0.26; "i'm": 0.26; "doesn't": 0.28; 'thanks': 0.29; 'string': 0.29; 'problem': 0.29; 'be.': 0.29; 'depends': 0.29; 'unicode': 0.29; 'blocks': 0.31; 'character.': 0.31; 'digits': 0.31; 'does': 0.31; "can't": 0.31; 'match': 0.31; 'to:addr:python-list': 0.32; 'another': 0.32; '...': 0.32; '(including': 0.33; 'character': 0.33; 'headers': 0.33; 'using': 0.34; 'skip:" 10': 0.34; 'there': 0.35; 'file': 0.35; 'characters': 0.35; 'editor': 0.35; 'open': 0.35; 'header :User-Agent:1': 0.35; 'point': 0.35; 'typical': 0.35; 'else': 0.37; 'should': 0.37; 'sequence': 0.38; 'less': 0.38; 'files': 0.38; 'anything': 0.38; 'unless': 0.38; 'affect': 0.39; 'docs': 0.39; 'likely': 0.39; 'skip:s 30': 0.39; 'to:addr:python.org': 0.39; 'how': 0.39; 'necessarily': 0.40; 'box,': 0.60; 'unusual': 0.60; 'best': 0.60; '2011': 0.62; 'american': 0.65; 'nothing.': 0.68; 'obtained': 0.68; 'reply-to:no real name:2**0': 0.72; 'header:Reply-To:1': 0.72; 'order,': 0.73; 'spaces': 0.73; 'stream': 0.73; 'consumer': 0.80; 'western': 0.82; 'encoding,': 0.84; 'encoding?': 0.84; 'symptom': 0.84; 'window,': 0.84; 'inability': 0.91; 'points,': 0.91; 'render': 0.91; 'you).': 0.91; 'on...': 0.93
In-Reply-To <KDGyp.180$0t1.7@newsfe04.iad>
References <OkDyp.2983$M61.450@newsfe07.iad> <mailman.1433.1305151801.9059.python-list@python.org> <vpEyp.981$dL5.736@newsfe08.iad> <mailman.1435.1305157329.9059.python-list@python.org> <KDGyp.180$0t1.7@newsfe04.iad>
Date Thu, 12 May 2011 13:54:20 +1000
Subject Re: unicode by default
From "John Machin" <sjmachin@lexicon.net>
To python-list@python.org
User-Agent SquirrelMail/1.4.21
MIME-Version 1.0
Content-Type text/plain;charset=iso-8859-1
Content-Transfer-Encoding 8bit
X-Priority 3 (Normal)
Importance Normal
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.12
Precedence list
Reply-To sjmachin@lexicon.net
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.1441.1305172465.9059.python-list@python.org> (permalink)
Lines 73
NNTP-Posting-Host 82.94.164.166
X-Trace 1305172465 news.xs4all.nl 81474 [::ffff:82.94.164.166]:51120
X-Complaints-To abuse@xs4all.nl
Xref x330-a1.tempe.blueboxinc.net comp.lang.python:5191

Show key headers only | View raw


On Thu, May 12, 2011 11:22 am, harrismh777 wrote:
> John Machin wrote:
>> (1) You cannot work without using bytes sequences. Files are byte
>> sequences. Web communication is in bytes. You need to (know / assume /
>> be
>> able to extract / guess) the input encoding. You need to encode your
>> output using an encoding that is expected by the consumer (or use an
>> output method that will do it for you).
>>
>> (2) You don't need to use bytes to specify a Unicode code point. Just
>> use
>> an escape sequence e.g. "\u0404" is a Cyrillic character.
>>
>
> Thanks John.  In reverse order, I understand point (2). I'm less clear
> on point (1).
>
> If I generate a string of characters that I presume to be ascii/utf-8
> (no \u0404 type characters)
> and write them to a file (stdout) how does
> default encoding affect that file.by default..?   I'm not seeing that
> there is anything unusual going on...

About """characters that I presume to be ascii/utf-8 (no \u0404 type
characters)""": All Unicode characters (including U+0404) are encodable in
bytes using UTF-8.

The result of sys.stdout.write(unicode_characters) to a TERMINAL depends
mostly on sys.stdout.encoding. This is likely to be UTF-8 on a
linux/OSX/platform. On a typical American / Western European /[former]
colonies Windows box, this is likely to be cp850 on a Command Prompt
window, and cp1252 in IDLE.

UTF-8: All Unicode characters are encodable in UTF-8. Only problem arises
if the terminal can't render the character -- you'll get spaces or blobs
or boxes with hex digits in them or nothing.

Windows (Command Prompt window): only a small subset of characters can be
encoded in e.g. cp850; anything else causes an exception.

Windows (IDLE): ignores sys.stdout.encoding and renders the characters
itself. Same outcome as *x/UTF-8 above.

If you write directly (or sys.stdout is redirected) to a FILE, the default
encoding is obtained by sys.getdefaultencoding() and is AFAIK ascii unless
the machine's site.py has been fiddled with to make it UTF-8 or something
else.

>   If I open the file with vi?  If
> I open the file with gedit?  emacs?

Any editor will have a default encoding; if that doesn't match the file
encoding, you have a (hopefully obvious) problem if the editor doesn't
detect the mismatch. Consult your editor's docs or HTFF1K.

> Another question... in mail I'm receiving many small blocks that look
> like sprites with four small hex codes, scattered about the mail...
> mostly punctuation, maybe?   ... guessing, are these unicode code
> points,

yes

> and if so what is the best way to 'guess' the encoding?

google("chardet") or rummage through the mail headers (but 4 hex digits in
a box are a symptom of inability to render, not necessarily caused by an
incorrect decoding)

 ... is
> it coded in the stream somewhere...protocol?

Should be.

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

unicode by default harrismh777 <harrismh777@charter.net> - 2011-05-11 16:37 -0500
  Re: unicode by default Ian Kelly <ian.g.kelly@gmail.com> - 2011-05-11 16:09 -0600
    Re: unicode by default harrismh777 <harrismh777@charter.net> - 2011-05-11 17:51 -0500
      Re: unicode by default "John Machin" <sjmachin@lexicon.net> - 2011-05-12 09:32 +1000
        Re: unicode by default harrismh777 <harrismh777@charter.net> - 2011-05-11 20:22 -0500
          Re: unicode by default MRAB <python@mrabarnett.plus.com> - 2011-05-12 03:31 +0100
            Re: unicode by default Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2011-05-12 03:16 +0000
              Re: unicode by default harrismh777 <harrismh777@charter.net> - 2011-05-11 22:44 -0500
                Re: unicode by default Terry Reedy <tjreedy@udel.edu> - 2011-05-12 00:12 -0400
                Re: unicode by default harrismh777 <harrismh777@charter.net> - 2011-05-12 01:43 -0500
                Re: unicode by default "John Machin" <sjmachin@lexicon.net> - 2011-05-12 14:14 +1000
                Re: unicode by default Benjamin Kaplan <benjamin.kaplan@case.edu> - 2011-05-11 21:14 -0700
                Re: unicode by default "John Machin" <sjmachin@lexicon.net> - 2011-05-12 14:41 +1000
                Re: unicode by default harrismh777 <harrismh777@charter.net> - 2011-05-12 01:14 -0500
                Re: unicode by default TheSaint <nobody@nowhere.net.no> - 2011-05-12 20:40 +0800
            Re: unicode by default Ben Finney <ben+python@benfinney.id.au> - 2011-05-12 14:07 +1000
              Re: unicode by default harrismh777 <harrismh777@charter.net> - 2011-05-12 01:31 -0500
                Re: unicode by default "John Machin" <sjmachin@lexicon.net> - 2011-05-12 17:58 +1000
                Re: unicode by default Ian Kelly <ian.g.kelly@gmail.com> - 2011-05-12 10:17 -0600
                Re: unicode by default jmfauth <wxjmfauth@gmail.com> - 2011-05-12 23:28 -0700
                Re: unicode by default harrismh777 <harrismh777@charter.net> - 2011-05-13 14:53 -0500
                Re: unicode by default Robert Kern <robert.kern@gmail.com> - 2011-05-13 15:18 -0500
                Re: unicode by default Terry Reedy <tjreedy@udel.edu> - 2011-05-13 21:41 -0400
                Re: unicode by default harrismh777 <harrismh777@charter.net> - 2011-05-14 02:41 -0500
                Re: unicode by default jmfauth <wxjmfauth@gmail.com> - 2011-05-14 03:26 -0700
                Re: unicode by default Terry Reedy <tjreedy@udel.edu> - 2011-05-14 16:26 -0400
                Re: unicode by default Ben Finney <ben+python@benfinney.id.au> - 2011-05-15 09:47 +1000
                Re: unicode by default Nobody <nobody@nowhere.com> - 2011-05-14 09:34 +0100
                Re: unicode by default Terry Reedy <tjreedy@udel.edu> - 2011-05-12 16:42 -0400
                Re: unicode by default Ian Kelly <ian.g.kelly@gmail.com> - 2011-05-12 16:25 -0600
          Re: unicode by default "John Machin" <sjmachin@lexicon.net> - 2011-05-12 13:54 +1000
  Re: unicode by default Benjamin Kaplan <benjamin.kaplan@case.edu> - 2011-05-11 15:34 -0700

csiph-web