Seite 1 von 1

Unicode String Error

Verfasst: Dienstag 6. September 2016, 18:47
von DMD-OL
hallo
ich habe da ein kleines problem
ich habe zweimal den selben namen:
print a, type(a)
--> Günther, Schön (1) <type 'str'>

und
print b, type(b)
--> Günther, Schön (1) <type 'unicode'>

durch einen vergleich ob es die selben sind (ich erwarte ein True) gibt es
aber ein False. ich benutze "utf-8".
mit encode bzw. decode habe ich es schon versucht...
ich erhalte z.b. mit a.encode("utf-8")
--> Günther, Schön (1) <type 'str'>

wie kann ich die beiden typen zu strings machen und gleichzeitig die namen Günther, Schön (1) unverändert lassen???

Re: Unicode String Error

Verfasst: Dienstag 6. September 2016, 19:16
von Sirius3
@DMD-OL: bei »a.encode("utf-8")« solltest Du einen UnicodeDecodeError bekommen, da Zeichen außerhalb des ASCII-Bereichs enthalten sind. Um einen Byte-String in einen Unicode-String umzuwandeln brauchst Du »decode« und zwar mit dem richtigen Encoding.

Re: Unicode String Error

Verfasst: Samstag 1. Oktober 2016, 14:47
von xWolf
DMD-OL hat geschrieben:hallo
ich habe da ein kleines problem
ich habe zweimal den selben namen:
print a, type(a)
--> Günther, Schön (1) <type 'str'>

und
print b, type(b)
--> Günther, Schön (1) <type 'unicode'>
......

wie kann ich die beiden typen zu strings machen und gleichzeitig die namen Günther, Schön (1) unverändert lassen???
Hallo,
Hier ein kleines "Sinnlos"-Programm, was aber funktioniert und Dein Problem lösen sollte:

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: utf-8 -*-

import string

def compare_code(Eingabe, uUnicode):
   if Eingabe == uUnicode:
      print "Same"
   else:
      print "not the same"    
      

uUnicode = u"Günter Schön"

sText =  raw_input('>>Günter Schön<< eingeben:> ') #....gib hier "Günter Schön" ein
print sText, type(sText)
print
print "converting String to Unicode..."
uText = unicode(sText.decode("utf-8"))
print
print uText, type(uText)
print uUnicode, type(uUnicode)
print
print "now compare both...."
compare_code(uText, uUnicode)
Hier meine Bildschirmausgabe:

Code: Alles auswählen

wolf@wolf-X550CC:~/wdata/projekte/python/tests > python unicode01.py 
>>Günter Schön<< eingeben:> Günter Schön
Günter Schön <type 'str'>

converting String to Unicode...

Günter Schön <type 'unicode'>
Günter Schön <type 'unicode'>

now compare both....
Same


Re: Unicode String Error

Verfasst: Montag 10. Oktober 2016, 09:23
von DMD-OL
vielen dank, auch an xWolf :)