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???
Unicode String Error
@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.
Hallo,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???
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)
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