09/10/2018, 22:46

Bi kịch Unicode-UTF8 (MySQL) với Collation

* Từ lúc chuyển host dùng MySQL 4.0 sang MySQL 4.1 gặp phải rắc rối về Unicode trong Database:
- Xuất hiện cột Collation default font "latin1", chả hiểu là wái gì.
- Tất cả font Unicode cũ sau khi import đều ra dấu ??? hết
- Nếu chọn defaut Unicode-UTF8 trước khi import trong phpMyAdmin thì trong db hiện đúng Unicode, nhưng display ra website lại ra tiếng... Arập??!!
- Nếu không import và edit trực tiếp trong phpMyAdmin mà input data bằng website thì không sao.
Có bạn nào tìm được cách khắc phục trọn vẹn không? Sao cho toàn bộ database cũ vẫn work tốt trong MySQL 4.1 sau khi imported?

Cám ơn đã đọc tin này.
php&mysql viết 00:59 ngày 10/10/2018
MYSQL 411 trở đi khi import từ database cũ nên chọn latin1 ngay dưới browse của phpmyadmin đi là ok, nếu chọn utf-8 thì khi hiển thị ra tren web sẽ không đúng mã unicode đâu
restart viết 00:59 ngày 10/10/2018
Very good, cám ơn bạn, làm được rồi. Có điều là từ giờ trở đi không thể nhìn thấy unicode và gõ unicode trực tiếp trong phpMyAdmin được nữa đúng không?
manhtuan007 viết 00:57 ngày 10/10/2018
Vẫn nội dung như trên tui dạy 1tr thôi
restart viết 01:03 ngày 10/10/2018
Sao kỳ dzạ, tự nhiên đòi dạy lấy 1tr là sao chời? Tui đã khắc fục được 100% rồi (tự biên tự diễn luôn). Bạn nào đang gặp lỗi Unicode khi upgrade từ MySQL phiên bản cũ lên MySQL 4.1 or newer thì cứ PM cho mình, tui sẽ chỉ cách khắc fục và... tất nhiên miễn fí
hiepsi@ viết 00:59 ngày 10/10/2018
Sao bạn không chỉ ở đây luôn đi, hồi trước tui cũng bị, nhưng không biết làm thế nào đành phải làm thủ công là bỏ hết mấy cái "defaul charset= latin" gì đó đi, còn font thì dùng chức năng chuyển font của unikey để chuyển đổi, và khi save lại thì save dưới dạng ASNI gì đó, bạn nào có kinh nghiệm hay hơn thì chỉ, làm gì mà đòi tiền dữ vậy?
Vinhie47 viết 00:57 ngày 10/10/2018
Tớ thì bị gặp phải một lỗi khác nhưng cũng liên quan đến font chữ đấy là dùng CSDL access, lúc ở một cái host thì vẫn hiện thị font chữ bình thường, sau đó chuyển toàn bộ database cũng như cả cái forum sang một host khác thì nó lại hiện ra chữ linh tinh không đọc được(dĩ nhiên là chỉ xảy ra với chữ có dấu), chạy ở localhost cũng không đọc được. Vậy thì phải làm sao đây?
restart viết 00:49 ngày 10/10/2018
chẹp, 1tr méc wá nên mọi người dùng cái này miễn fí nha:
Để khắc fục lỗi Unicode và Collation khi nâng cấp từ MySQL cũ sang MySQL 4.1 trở lên bạn làm các thao tác sau:
- Vào phpMyAdmin mà default lại cái Charset là UTF8, trong phần Operations vào default cái Collation lại là "Unicode_general_ci"
- Sau đó import table vào thoải mái mà vẫn hiện đúng Unicode
- Để Unicode hiển thị được trên website php, bạn thêm vào dòng: "mysql_query('SET CHARACTER SET utf8');" sau câu lệnh: "mysql_select_db();" mỗi khi bạn connect database là được zồi.
Với giải pháp này bạn không cần fải cấu hình gì lại MySQL hay database của bạn gì cả, và cũng khỏi mất 1tr luôn
jcisio viết 00:57 ngày 10/10/2018
Ơ tôi cũng gặp vấn đề này, mặc dù không quan trọng lắm nhưng cũng muốn biết cách giải quyết.
Tôi đang dùng 4.0 ở host, vào phpMyAdmin (PMA) chỉnh sửa bình thường (utf8), tự dưng bên host nâng cấp lên 4.1, web vẫn bình thường nhưng PMA thì không dùng được tiếng Việt nữa. Trong PMA chuyển collation từ latin1 sang utf8 vẫn không có kết quả gì ?
satthuhuydiet viết 01:03 ngày 10/10/2018
Xem bài viết chi tiết ở đây: http://ddth.com/showthread.htm?p=448670#post448670
Bài liên quan
0