[Tutor] Working with Umlauts

Magnus Lycka magnus@thinkware.se
Fri Jan 17 15:42:21 2003


At 13:06 2003-01-17 +0100, Tom Churm wrote:
>>Where does lastNameOfUser come from?
>this is one of my variables...employee names=20
>that--unfortunately!--sometimes contain umlauts

Yes, I understand those parts. I wonder how the string
data ends up in the variable. By divine intervention or
what? Do you get it through COM fro ma Windows application,
or do you get it via ODBC from Access or what? Read from
a text file? The big issue is: Are you sure it is of type
string? Or is it a Unicode object? What does
   print type(lastNameOfUser)
say?

>>you perchance working in IDLE? Face it: IDLE doesn't work!
>i'm using PythonWin, ActivePython build 2.1.212,
>and no, this doesn't work so great sometimes either.


PythinWin works like a charm for me except when I backspace on
non-ASCII characters. Then I sometimes get some odd character
that I need to remove as well.

When I try:

lastNameOfUser =3D """string.replace(lastNameOfUser,"=E4","ae")
lastNameOfUser =3D string.replace(lastNameOfUser,"=F6","oe")
lastNameOfUser =3D string.replace(lastNameOfUser,"=FC","ue")
lastNameOfUser =3D string.replace(lastNameOfUser,"=DF","ss")
lastNameOfUser =3D string.replace(lastNameOfUser,"=C4","Ae")
lastNameOfUser =3D string.replace(lastNameOfUser,"=D6","Oe")
lastNameOfUser =3D string.replace(lastNameOfUser,"=DC","Ue")"""

lastNameOfUser =3D string.replace(lastNameOfUser,"=E4","ae")
lastNameOfUser =3D string.replace(lastNameOfUser,"=F6","oe")
lastNameOfUser =3D string.replace(lastNameOfUser,"=FC","ue")
lastNameOfUser =3D string.replace(lastNameOfUser,"=DF","ss")
lastNameOfUser =3D string.replace(lastNameOfUser,"=C4","Ae")
lastNameOfUser =3D string.replace(lastNameOfUser,"=D6","Oe")
lastNameOfUser =3D string.replace(lastNameOfUser,"=DC","Ue")

print lastNameOfUser

in PythonWin I get:

string.replace(lastNameOfUser,"ae","ae")
lastNameOfUser =3D string.replace(lastNameOfUser,"oe","oe")
lastNameOfUser =3D string.replace(lastNameOfUser,"ue","ue")
lastNameOfUser =3D string.replace(lastNameOfUser,"ss","ss")
lastNameOfUser =3D string.replace(lastNameOfUser,"Ae","Ae")
lastNameOfUser =3D string.replace(lastNameOfUser,"Oe","Oe")
lastNameOfUser =3D string.replace(lastNameOfUser,"Ue","Ue")

Just as expected.


--=20
Magnus Lycka, Thinkware AB
Alvans vag 99, SE-907 50 UMEA, SWEDEN
phone: int+46 70 582 80 65, fax: int+46 70 612 80 65
http://www.thinkware.se/  mailto:magnus@thinkware.se