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

Cách xác định ngôn ngữ trong cột utf-8 trong MySQL

Vâng, hãy bắt đầu với một bảng tôi đã đặt trong tại đây . Ví dụ, nó nói rằng E381yy là mã hóa utf8 cho Hiragana và E383yy là Katakana (tiếng Nhật). (Kanji là một vấn đề khác.)

Để xem liệu cột utf8 có chứa Katakana hay không, hãy làm như

WHERE HEX(col) REGEXP '^(..)*E383'

Kirin có thể là

WHERE HEX(col) REGEXP '^(..)*D[0-4]'

Tiếng Trung hơi phức tạp nhưng điều này có thể thường là làm việc cho tiếng Trung (và chữ Kanji?):

WHERE HEX(col) REGEXP '^(..)*E[4-9A]'

(Tôi sẽ thay đổi Tiêu đề của bạn để tránh từ khóa 'bộ ký tự'.)

Tây Âu (bao gồm nhưng không giới hạn ở tiếng Pháp) C[23] , Tiếng Thổ Nhĩ Kỳ (ước chừng và một số khác) (C4|C59) , Tiếng Hy Lạp:C[EF] , Tiếng Do Thái:D[67] , Tiếng Ấn Độ, v.v.:E0 , Tiếng Ả Rập / tiếng Farsi / tiếng Ba Tư / tiếng Urdu:D[89AB] . (Luôn luôn có tiền tố là ^(..)* .

Bạn có thể nhận thấy rằng những điều này không nhất thiết phải rất cụ thể. Điều này là do chồng chéo. Tiếng Anh của người Anh và tiếng Anh của người Mỹ không thể phân biệt được ngoại trừ cách viết của một vài từ. Một số chữ cái có dấu được chia sẻ theo nhiều cách khác nhau ở Châu Âu. Ấn Độ có nhiều bộ ký tự khác nhau:Devanagari, Bengali, Gurmukhi, Gujarati, v.v ...; chúng có thể phân biệt được, nhưng sẽ cần nhiều nghiên cứu hơn. Tôi nghĩ tiếng Ả Rập / tiếng Farsi / tiếng Ba Tư / tiếng Urdu có chung một bộ ký tự.

Một số khác:

| SAMARITAN                     | E0A080        | E0A0BE        |
| DEVANAGARI                    | E0A480        | E0A5BF        |
| BENGALI                       | E0A681        | E0A7BB        |
| GURMUKHI                      | E0A881        | E0A9B5        |
| GUJARATI                      | E0AA81        | E0ABB1        |
| ORIYA                         | E0AC81        | E0ADB1        |
| TAMIL                         | E0AE82        | E0AFBA        |
| TELUGU                        | E0B081        | E0B1BF        |
| KANNADA                       | E0B282        | E0B3B2        |
| MALAYALAM                     | E0B482        | E0B5BF        |
| SINHALA                       | E0B682        | E0B7B4        |
| THAI                          | E0B881        | E0B99B        |
| LAO                           | E0BA81        | E0BB9D        |
| TIBETAN                       | E0BC80        | E0BF94        |

Vì vậy, đối với DEVANAGARI, '^(..)*E0A[45]'




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để kết nối và truy vấn MySQL từ bên trong Lua?

  2. cập nhật nhiều lần bằng ajax với php

  3. varchar (255) so với tinytext / tinyblob và varchar (65535) so với blob / text

  4. Ngày và giờ gần nhất tiếp theo trong MySQL

  5. Có giải pháp thay thế cho TOP trong MySQL không?