Mysql
 sql >> база данни >  >> RDS >> Mysql

Unicode (шестнадесетични) символни литерали в MySQL

Можете да посочите шестнадесетични литерали (или дори двоични литерали ) с помощта на 0x , x'' или X'' :

select  0xC2A2;
select x'C2A2';
select X'C2A2';

Нобъдете наясно че връщаният тип е двоичен низ, така че всеки байт се счита за символ. Можете да потвърдите това с char_length :

select char_length(0xC2A2)

Ако искате UTF-8 вместо низове, трябва да използвате convert :

select convert(0xC2A2 using utf8mb4)

И можем да видим, че C2 A2 се счита за 1 знак в UTF-8:

select char_length(convert(0xC2A2 using utf8mb4))

Освен това не е нужно да се притеснявате за невалидни байтове, защото конвертиране ще ги премахне автоматично:

select char_length(convert(0xC1A2 using utf8mb4))

Както се вижда, изходът е 0 защото C1 A2 е невалидна UTF-8 байтова последователност.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да импортирате/възстановявате MySql таблици с помощта на PHP

  2. ИЗБЕРЕТЕ * ОТ Свързан MySQL сървър

  3. SQL Връзка много към много между множество таблици

  4. получих избор, който прави 10 заявка в доктрина (Symfony)

  5. Ubuntu - 12.04 - MySql няма да стартира с помощта на услугата mysql start