sql >> Database >  >> RDS >> Mysql

Python, converteer 4-byte char om MySQL-fout te voorkomen Onjuiste tekenreekswaarde:

In een UCS-2-build gebruikt python intern 2 code-eenheden voor elk unicode-teken over de \U0000ffff code punt. Reguliere expressies moeten hiermee werken, dus je moet de volgende reguliere expressie gebruiken om deze te matchen:

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

Deze reguliere expressie komt overeen met elk codepunt dat is gecodeerd met een UTF-16-surrogaatpaar (zie UTF-16-code wijst U+10000 tot U+10FFFF .

Om dit compatibel te maken met Python UCS-2 en UCS-4 versies, zou je een try: . kunnen gebruiken /except om de een of de ander te gebruiken:

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

Demonstratie op een UCS-2 python build:

>>> 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. MySQL relationele databases gebruiken op Ubuntu 9.10 (Karmic)

  2. Ontwikkelaarstools om rechtstreeks toegang te krijgen tot databases

  3. In volgorde invoegen in tabel

  4. SQL-ontwikkelaar 4.1.2