[Tutor] symbol encoding and processing problem
Tim Michelsen
timmichelsen at gmx-topmail.de
Tue Oct 16 13:45:18 CEST 2007
Dear list,
I have encountered a problem with encoding of user input and variables.
I want to read in user defined coordinates as a string like: 121° 55' 5.55''
Furthermore I would like to extract the degrees (integer number before the " ° "
sign), the minutes (integer number before the " ' " sign) and the seconds
(floating point number before the " '' " sign).
When reading and processing the degree part I get some errors:
Heres my test script:
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 from easygui import easygui
4 import sys
5 #raw = sys.argv[1]
6 raw = easygui.enterbox(message="Enter something.", title="",
argDefaultText="20° 12' 33''")
7 #unicode = unicode(raw)
8 #conv = raw.encoding('latin-1')
9 split = raw.split('°')
10 out = raw
11 print out
12 easygui.msgbox(out)
Here ist my output:
20° 12' 33''
Traceback (most recent call last):
File "C:\python24\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py",
line 310, in RunScript
exec codeObject in __main__.__dict__
File "D:\python\scripts\encoding-test.py", line 22, in ?
split = raw.split('°')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 0: ordinal
not in range(128)
Traceback (most recent call last):
File "C:\python24\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py",
line 310, in RunScript
exec codeObject in __main__.__dict__
File "D:\python\scripts\encoding-test.py", line 22, in ?
split = raw.split('°')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 0: ordinal
not in range(128)
Therefore my question:
* How can I split at the "°" without getting a charater encoding error?
* How do I have to encode the "°"-symbol that it gets correctly displayed in the
Easygui msgbox at line 6?
Thanks inadvance for answering,
Timmie
More information about the Tutor
mailing list