sql >> Database >  >> RDS >> PostgreSQL

Hoe kan ik een Python Unicode-tekenreeks controleren om te zien of deze *eigenlijk* de juiste Unicode is?

Er is een bug in python 2.x is dat alleen vast python 3.x. Deze bug zit zelfs in de iconv van OS X (maar niet in de glibc).

Dit is wat er gebeurt:

Python 2.x herkent UTF8-surrogaatparen [1] niet als ongeldig (wat uw tekenreeks is)

Dit moet wees alles wat nodig is:

foo.decode('utf8').encode('utf8')

Maar dankzij die bug die ze niet repareren, vangt het geen surrogaatparen.

Probeer dit in python 2.x en daarna in 3.x:

b'\xed\xbd\xbf'.decode('utf8')

Het zal een fout (correct) in de laatste gooien. Ze repareren het ook niet in de 2.x-tak. Zie [2] en [3] voor meer info

[1] https://www.rfc-editor.org/rfc/ rfc3629#section-4

[2] http://bugs.python.org/issue9133

[3] http://bugs.python.org/issue8271#msg102209



  1. SQLAlchemy volgorde op functie resultaat

  2. Google Chart Tools met PHP &MySQl

  3. Mysql inline laden - specifieke kolommen

  4. IPAddr-instantie ophalen uit de json-representatie