Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Python, przekonwertuj 4-bajtowy znak, aby uniknąć błędu MySQL Nieprawidłowa wartość ciągu:

W kompilacji UCS-2 python używa wewnętrznie 2 jednostek kodu dla każdego znaku Unicode w \U0000ffff punkt kodowy. Wyrażenia regularne muszą z nimi współpracować, więc aby je dopasować, musisz użyć następującego wyrażenia regularnego:

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

To wyrażenie regularne pasuje do dowolnego punktu kodowego zakodowanego za pomocą pary zastępczej UTF-16 (patrz UTF-16 Punkty kodowe U+10000 do U+10FFFF .

Aby uczynić to kompatybilnym w wersjach Pythona UCS-2 i UCS-4, możesz użyć try: /except użyć jednego lub drugiego:

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

Demonstracja na kompilacji Pythona UCS-2:

>>> 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. django.core.exceptions.ImproperlyConfigured:Błąd podczas ładowania modułu MySQLdb:Brak modułu o nazwie MySQLdb

  2. Różnica między FIELD() i FIND_IN_SET() w MySQL

  3. Czy klucz podstawowy jest automatycznie indeksowany w MySQL?

  4. mySql - tworzenie złączenia przy użyciu listy wartości oddzielonych przecinkami

  5. Zaznaczyć wszystkie kolumny z wyjątkiem jednej w MySQL?