01/10/2018, 08:13

Lỗi không lưu được mã utf8 trong mysql?

Mình đang xây dựng cơ sở dữ liệu thì gặp một vấn đề là khi insert dữ liệu có ký tự tiếng việt như “Ê” thì nó lưu thành “?” trong database. Mình đang sử dụng PHP 5.5. Mình kiếm thử vài cái như là “mysql_set_charset(“utf8”);” nhưng mà không được. Mình đang gấp, xin mọi người giúp đỡ !.

vũ xuân quân viết 10:17 ngày 01/10/2018

khi tạo database bạn nên chọn mã là utf8.
Cái này bị lỗi khi bạn tạo database không có set utf8 cho database được tạo.
Bạn tìm gg với từ khóa “cách tạo database của mysql với utf8”

Phan Hoàng viết 10:19 ngày 01/10/2018

mysql_set_charset

Chào bạn. Thực ra để UTF8 lưu vào db thì phải set chuỗi gửi lên là UTF8, nhưng cũng phải set engine nhận cũng phải nhận UTF8 nữa ^^

  • Lệnh mysql_set_charset là lệnh set thư viện mysql (hiện đã bị deprecate) khi gửi các query lên thì mã hóa UTF8. Với các thư viện mới hơn như MySQLi hay PDO_MySQL thì mặc định luôn là UTF8 rồi. Nếu bạn muốn set char khác thì dùng lệnh mysqli_set_charset

  • Vì MySQL do 1 kỹ sư Thụy Điển chế ra nên mặc định charset của engine là swedish_… Giờ bạn muốn charset của engine tạm thời được set sang UTF8 thì phải dùng

gọi_lệnh("SET NAMES utf-8"); //gọi lệnh thì nếu bạn dùng mysql thì là mysql_exec, còn nếu là các lib khác thì bạn search nhé ^^ k nhớ lắm, hình như là exec với PDO và mysqli_exec với MySQLi
Bài liên quan
0