MySQL - convert to UTF-8

Mai Thanh Hà
(mtha)

Administrator
Nhân viên
Có ai biết cách làm thế nào để convert một mớ data trong table, lẫn lộn giữa UTF-8 và một số ký tự của unicode sang hết UTF-8 không?

Ví dụ

Khi Browser Encode = Window 1252
Mã:
Nguyá»…n Thị Hoà ng      Hà
Khi Browser Encode = UTF-8
Mã:
Nguyễn Thị Hoàng      H�

Các ký tự tiếng việt trong Extended ASCII codes cần convert thành UTF-8, mà vẫn giữ nguyên các ký tự UTF khác.
 
Chỉnh sửa lần cuối:
Unikey cũng có chức năng chuyển mã ở phần công cụ
nhưng làm thế thủ công, vì phải convert cả table :-s
 
Em ko nhớ rõ nhưng anh thử search phần mềm gì đó của Vietnam tên là KN Convert to Unicode xem.Nó có thể chuyển tự động được đấy
 
Cái unikey chuyển được nhưng mà chỉ chuyến 1 loại mã nhất định thôi.
 
Hic, hình như ý anh Hà là code cái j` đấy để convert hẳn 1 table lẫn cả 2 định dạng về UTF8 trong CSDL (nếu em không nhầm) ... mà nếu ví dụ với CSDL của HAO thì thủ công thế nào được ...
 
:) thủ công thì anh đã không cần hỏi rồi, anh hỏi lập trình ấy chứ, để xử lý hàng loạt dữ liệu (vài chục ngàn dữ liệu chẳng hạn)

Data bị trộn lẫn giữa 2 định dạng, vì vậy khi hiển thị sẽ không hiển thị đúng => cần phải chuyển về một định dạng chuẩn.

Dùng convert các ký tự #127:290 sang utf-8 thì không được, vì nó destroy mất các ký tự UTF-8 hiện tại trong table.
 
Có cách nào để lọc 2 cái ra riêng không anh nhỉ, nếu khi chuyển từ Window 1252 -> UTF8 từ kết quả có chứa dấu "?" thì giữ lại từ gốc .. không biết e nghĩ thế có đúng 0 T__T
:D, để em nghiên cứu thêm về các chuẩn đã, vì thuật toán chuyển từ chuẩn này sang 1 chuẩn khác em không rõ ..
 
Chỉnh sửa lần cuối:
Có cách nào để lọc 2 cái ra riêng không anh nhỉ, nếu khi chuyển từ Window 1252 -> UTF8 từ kết quả có chứa dấu "?" thì giữ lại từ gốc .. không biết e nghĩ thế có đúng 0 T__T


Đối với việc anh đang làm, anh đã giải quyết xong rồi, nhưng mà đi bằng con đường khác, khi export data, anh export hết ra UTF-16LE, sau đó convert lại thành UTF-8, bằng một converter "tốt hơn".
Có thể cái script anh sử dụng để convert trước đây không xử lý tốt UTF-16LE để chuyển sang UTF-8 nên bị lỗi như trên


Anyway, đây cũng có thể làm một bài toán hay có thể thảo luận về giải pháp. Anh chưa thử nên chưa biết, nhưng nếu cho input data như trên, convert hết thành utf-16 rồi convert ngược lại, có được không. Em thử suy nghĩ xem (nếu có thời gian).
 
Cho em hỏi tí. 1 có 1 database, tất cả mọi thứ đều là unicode. Import xong trong phpmyadmin thì nó lại trở thành utf-8 như là Đỗ Hồng Nam -> Đỗ Hồng Nam
 
Tùy vào table lúc anh lập trong phpmyadmin là UTF8 hay unicode, anh phải lập định dạng chuẩn ngay trong lúc anh create 1 table mới vd : DEFAULT CHARSET=latin1;
 
Back
Bên trên