Có, tôi có thể.
Bạn đã không cho máy chủ Mysql biết bạn muốn mã hóa dữ liệu nào.
Mysql có thể cung cấp bất kỳ mã hóa nào trong trường hợp mã hóa trang của bạn khác với mã hóa dữ liệu được lưu trữ. Và mã hóa nó một cách nhanh chóng.
Do đó, nó cần được thông báo về kiểu mã hóa ưa thích của ứng dụng khách (mã PHP của bạn là ứng dụng khách cơ sở dữ liệu đó).
Theo mặc định, nó là latin1
. Do đó, vì không có ký hiệu nào như vậy trong bảng ký tự latin1, thay vào đó, dấu hỏi sẽ được trả về.
Có 2 cách để cho mysql biết chúng tôi muốn mã hóa nào:
- ưu tiên hơn một chút là mysqli_set_charset () chức năng (phương pháp trong trường hợp của bạn).
- ít được ưu tiên hơn là
SET NAMES
truy vấn.
Nhưng miễn là bạn đang sử dụng tiện ích mở rộng mysqli đúng cách, điều đó không thực sự quan trọng. (mặc dù bạn không phải)
Lưu ý rằng trong mysql mã hóa này được gọi là utf8
, không có dấu gạch ngang hoặc dấu cách.