Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để chuyển đổi dữ liệu được mã hóa sai thành UTF-8 trong MySQL?

Bạn cần sử dụng hàm CONVERT () cùng với từ khóa nhị phân. Cú pháp như sau -

 CHỌN CHUYỂN ĐỔI (CHUYỂN ĐỔI nhị phân (yourColumnName sử dụng latin1) SỬ DỤNG UTF8) dưới dạng anyAliasName FROM yourTableName; 

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

 mysql> create table UtfDemo -> (-> Id int NOT NULL AUTO_INCREMENT, -> Name varchar (15), -> PRIMARY KEY (Id) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,76 giây)  

Chèn một số bản ghi trong bảng bằng lệnh INSERT. Truy vấn như sau -

 mysql> chèn vào giá trị UtfDemo (Tên) ('Obamaâ € ™ s'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,28 giây) mysql> chèn vào giá trị UtfDemo (Tên) ('Johnâ € ™ s'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,23 giây) mysql> chèn vào giá trị UtfDemo (Tên) ('Carolâ € ™ s'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây) mysql> chèn vào giá trị UtfDemo (Tên) ('Samâ € ™ s '); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây) 

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

 mysql> select * từ UtfDemo; 

Sau đây là kết quả -

 + ---- + ---------------- + | Id | Tên | + ---- + ---------------- + | 1 | Obamaâ € ™ s || 2 | Johnâ € ™ s || 3 | Carolâ € ™ s || 4 | Samâ € ™ s | + ---- + ---------------- + 4 hàng trong bộ (0,00 giây) 

Đây là truy vấn để chuyển đổi dữ liệu được mã hóa sai thành UTF8 -

 mysql> chọn CONVERT (CHUYỂN ĐỔI nhị phân (Tên sử dụng latin1) sử dụng utf8) làm ListOfName từ UtfDemo; 

Sau đây là kết quả -

 + ------------ + | ListOfName | + ------------ + | Của Obama || John’s || Carol’s || Sam’s | + ------------ + 4 hàng được thiết lập, 1 cảnh báo (0,00 giây)