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

Làm cách nào để xóa các ký tự biểu tượng cảm xúc khỏi một chuỗi?

Giả sử bạn chỉ muốn xóa tất cả các ký tự không phải BMP, tức là bất kỳ thứ gì có điểm mã Unicode là U + 10000 trở lên, bạn có thể sử dụng regex để xóa mọi UTF-16 đại diện mã đơn vị từ chuỗi. Ví dụ:

using System;
using System.Text.RegularExpressions;

class Test
{
    static void Main(string[] args)
    {
        string text = "x\U0001F310y";
        Console.WriteLine(text.Length); // 4
        string result = Regex.Replace(text, @"\p{Cs}", "");
        Console.WriteLine(result); // 2
    }
}

Ở đây "Cs" là danh mục Unicode cho "người thay thế".

Có vẻ như Regex hoạt động dựa trên các đơn vị mã UTF-16 thay vì các điểm mã Unicode, nếu không, bạn cần một cách tiếp cận khác.

Lưu ý rằng có các ký tự không phải BMP ngoài biểu tượng cảm xúc, nhưng tôi nghi ngờ bạn sẽ thấy chúng sẽ gặp vấn đề tương tự khi bạn cố gắng lưu trữ chúng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiệu suất MYSQL chậm khi sử dụng filesort

  2. Cài đặt Máy chủ Web trong Windows XP với Apache2, PHP5 và MySQL4 - Phần 4

  3. Hibernate Exception trên MySQL Cross Join Query

  4. Chèn cùng một giá trị cố định vào nhiều hàng

  5. Hiểu về BẢNG TRUNCATE của MySQL bằng các ví dụ thực tế