Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memfilter (atau mengganti) karakter unicode yang membutuhkan lebih dari 3 byte dalam UTF-8?

Karakter unicode dalam rentang \u0000-\uD7FF dan \uE000-\uFFFF akan memiliki penyandian 3 byte (atau kurang) dalam UTF8. Rentang \uD800-\uDFFF adalah untuk multibyte UTF16. Saya tidak tahu python, tetapi Anda harus dapat menyiapkan ekspresi reguler untuk mencocokkan di luar rentang tersebut.

pattern = re.compile("[\uD800-\uDFFF].", re.UNICODE)
pattern = re.compile("[^\u0000-\uFFFF]", re.UNICODE)

Edit menambahkan Python dari skrip Denilson Sá di badan pertanyaan:

re_pattern = re.compile(u'[^\u0000-\uD7FF\uE000-\uFFFF]', re.UNICODE)
filtered_string = re_pattern.sub(u'\uFFFD', unicode_string)    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Datanya Null. Metode atau properti ini tidak dapat dipanggil pada nilai nol. (menggunakan kotak kombo)

  2. MYSQL Docker '[2002] Koneksi ditolak'

  3. Kapan saya harus menggunakan MySQLi daripada MySQL?

  4. PHP Periksa apakah string berisi huruf

  5. Kinerja MySQL – 5 Parameter dari File Konfigurasi