Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để lọc (hoặc thay thế) các ký tự unicode chiếm hơn 3 byte trong UTF-8?

Các ký tự Unicode trong các dải ô \ u0000- \ uD7FF và \ uE000- \ uFFFF sẽ có mã hóa 3 byte (hoặc ít hơn) trong UTF8. Phạm vi \ uD800- \ uDFFF dành cho UTF16 nhiều byte. Tôi không biết python, nhưng bạn có thể thiết lập một biểu thức chính quy để đối sánh bên ngoài các phạm vi đó.

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

Chỉnh sửa thêm Python từ tập lệnh của Denilson Sá trong phần nội dung câu hỏi:

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. Dịch vụ Mysql sẽ không khởi động, lỗi chức năng init InnoDB

  2. Ví dụ về Spring Boot CRUD với MySQL

  3. Kết nối mySQL với Android

  4. Các chỉ mục MySQL - các phương pháp hay nhất là gì?

  5. 4 công cụ dòng lệnh hữu ích để giám sát hiệu suất MySQL trong Linux