Bạn có thể chỉ định chữ thập lục phân
(hoặc thậm chí các ký tự nhị phân
) bằng cách sử dụng 0x
, x ''
hoặc X ''
:
select 0xC2A2;
select x'C2A2';
select X'C2A2';
Nhưng lưu ý rằng kiểu trả về là một chuỗi nhị phân, vì vậy mỗi và mỗi byte được coi là một ký tự. Bạn có thể xác minh điều này bằng char_length
:
select char_length(0xC2A2)
Nếu bạn muốn UTF-8
thay vào đó, bạn cần sử dụng convert
:
select convert(0xC2A2 using utf8mb4)
Và chúng ta có thể thấy rằng C2 A2
được coi là 1 ký tự trong UTF-8:
select char_length(convert(0xC2A2 using utf8mb4))
Ngoài ra, bạn không phải lo lắng về các byte không hợp lệ vì convert
sẽ tự động xóa chúng:
select char_length(convert(0xC1A2 using utf8mb4))
Như có thể thấy, đầu ra là 0
bởi vì C1 A2
là một chuỗi byte UTF-8 không hợp lệ.