python 2.7 string.join () mit Unicode

8

Ich habe eine Menge Byte-Strings ( str , nicht unicode , in Python 2.7), die Unicode-Daten enthalten (in utf-8 encoding).

Ich versuche, ihnen beizutreten (von "".join(utf8_strings) oder u"".join(utf8_strings) ), was

auslöst %Vor%

Gibt es eine Möglichkeit, die Methode .join() für Nicht-ASCII-Strings zu verwenden? Sicher kann ich sie in einer for-Schleife verketten, aber das wäre nicht kosteneffektiv.

    
thkang 07.02.2013, 18:50
quelle

2 Antworten

14

Das Verknüpfen von Byte-Strings mit ''.join() funktioniert einwandfrei; Der angezeigte Fehler würde only erscheinen, wenn Sie unicode und str objects:

gemischt hätten %Vor%

Die obigen Ausnahmen werden ausgelöst, wenn Sie den Unicode-Wert u'' als Joiner verwenden und der Zeichenfolge, der Sie beitreten möchten, jeweils einen Unicode-String hinzufügen.

    
Martijn Pieters 07.02.2013, 18:54
quelle
2

"".join(...) funktioniert, wenn jeder Parameter ein str ist (unabhängig von der Codierung).

Das Problem, das Sie sehen, hängt wahrscheinlich nicht mit der Verknüpfung zusammen, sondern mit den Daten, die Sie angeben. Posten Sie mehr Code, damit wir sehen können, was wirklich falsch ist.

    
afflux 07.02.2013 18:54
quelle

Tags und Links