sql >> Databáze >  >> RDS >> Mysql

Python, převeďte 4bajtový znak, abyste se vyhnuli chybě MySQL Nesprávná hodnota řetězce:

V sestavení UCS-2 používá python interně 2 kódové jednotky pro každý znak unicode přes \U0000ffff kódový bod. Regulární výrazy s nimi musí pracovat, takže k jejich shodě budete muset použít následující regulární výraz:

highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')

Tento regulární výraz odpovídá libovolnému bodu kódu zakódovanému pomocí náhradního páru UTF-16 (viz UTF-16 Kódové body U+10000 až U+10FFFF .

Aby to bylo kompatibilní napříč verzemi Pythonu UCS-2 a UCS-4, můžete použít try: /except pro použití jednoho nebo druhého:

try:
    highpoints = re.compile(u'[\U00010000-\U0010ffff]')
except re.error:
    # UCS-2 build
    highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')

Ukázka na sestavení UCS-2 python:

>>> import re
>>> highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
>>> example = u'Some example text with a sleepy face: \U0001f62a'
>>> highpoints.sub(u'', example)
u'Some example text with a sleepy face: '



  1. Podpora připravených prohlášení na straně serveru s PDO?

  2. FULLTEXTOVÉ vyhledávání v MySQL nevrací žádné řádky

  3. mysql show Počet řádků z jiné tabulky v každém řádku

  4. Mohu znovu použít počítané pole ve SELECT dotazu?