Wat is het voorvoegsel u in een Python-string?

Vind ik leuk in:

u'Hello'

Mijn gok is dat het “Unicode” aangeeft, klopt dit?

Zo ja, sinds wanneer is het beschikbaar?


Antwoord 1, autoriteit 100%

Je hebt gelijk, zie 3.1.3. Unicode-strings.

Het is de syntaxis sinds Python 2.0.

Python 3 heeft ze overbodig gemaakt, omdat het standaard stringtype Unicode is. Versie 3.0 tot en met 3.2 hebben ze verwijderd, maar ze zijn opnieuw toegevoegd in 3.3+voor compatibiliteit met Python 2 om de overgang van 2 naar 3 te vergemakkelijken.


Antwoord 2, autoriteit 76%

De u in u'Some String'betekent dat je string een Unicode-stringis.

V: Ik heb ontzettend veel haast en ben hier beland via Google Zoeken. Ik probeer deze gegevens naar een bestand te schrijven, ik krijg een foutmelding en ik heb nu de doodeenvoudigste, waarschijnlijk gebrekkige oplossing nodig.

A: Je zou Joel’s absoluut minimum moeten lezen dat elke softwareontwikkelaar absoluut, positief moet weten Over Unicode en tekensets (geen excuses!)essay over tekensets.

V: sry no time code pls

A: Prima. probeer str('Some String')of 'Some String'.encode('ascii', 'ignore'). Maar je moet echt enkele van de antwoorden en discussies lezen op Een Unicode-tekenreeks converterenen dezeuitstekende, uitstekende inleiding op tekencodering.


Antwoord 3, autoriteit 28%

Mijn gok is dat het “Unicode” aangeeft, klopt dit?

Ja.

Zo ja, sinds wanneer is het beschikbaar?

Python 2.x.

In Python 3.x gebruiken de strings standaard Unicode en is het voorvoegsel uniet nodig. Opmerking:in Python 3.0-3.2 is de u een syntaxisfout. In Python 3.3+ is het weer legaal om het schrijven van 2/3 compatibele apps gemakkelijker te maken.


Antwoord 4, autoriteit 3%

Ik kwam hier omdat ik een grappig-char-syndroom had op mijn requests-uitvoer. Ik dacht dat response.textme een correct gedecodeerde string zou geven, maar in de uitvoer vond ik grappige dubbele tekens waar Duitse umlauts hadden moeten staan.

Het blijkt dat response.encodingop de een of andere manier leeg was en dat responsedus niet wist hoe de inhoud correct moest worden gedecodeerd en het gewoon als ASCII behandelde (denk ik).

p>

Mijn oplossing was om de onbewerkte bytes met ‘response.content’ te krijgen en er handmatig decode('utf_8')op toe te passen. Het resultaat was schöne Umlute.

De correct gedecodeerde

voor

vs. de onjuist gedecodeerde

voor


Antwoord 5

Alle snaren die voor mensen bedoeld zijn, moeten u”” gebruiken.

Ik ontdekte dat de volgende manier van denken veel helpt bij het omgaan met Python-strings: AllePython-manifeststrings moeten de u""-syntaxis gebruiken. De syntaxis ""is alleen voor byte-arrays.

Laat me het uitleggen voordat het bashen begint. De meeste Python-programma’s beginnen met het gebruik van ""voor strings. Maar dan moeten ze documentatie van internet ondersteunen, dus gaan ze "".decodegebruiken en ineens krijgen ze overal uitzonderingen over het decoderen van dit en dat – allemaal vanwege het gebruik van ""voor tekenreeksen. In dit geval gedraagt Unicode zich als een virus en zal het grote schade aanrichten.

Maar als je mijn regel volgt, krijg je deze infectie niet (omdat je al besmet bent).


Antwoord 6

Het is Unicode.

Plaats de variabele tussen str()en het zal goed werken.

Maar als u twee lijsten heeft, zoals de volgende:

a = ['co32','co36']
b = [u'co32',u'co36']

Als je set(a)==set(b)aanvinkt, wordt het als False weergegeven, maar als je het als volgt doet:

b = str(b)
set(a)==set(b)

Het resultaat is nu True.

Other episodes