Insert chữ tiếng việt trong bảng mysql bị lỗi font năm 2024
Cái này có 2 nguyên nhân bạn thử xem nhé 1. Khi tạo DB, bạn chọn encode là utf8_general_ci các table cũng để utf8_general_ci luôn nhé 2. Thêm dòng này vào trước câu insert của bạn mysql_query("SET NAMES 'UTF8'"); Vi du: Show include 'dbconnect.php'; mysql_query("SET NAMES 'utf8'"); foreach($rows as $row) { $sql = "INSERT INTO article(title, content) VALUES ('".$row['title']."', '".$row['content']."')"; $result = mysql_query($sql); } Em đã làm được rồi. Nhưng cho em hỏi chút, khi em dùng json_encode để chuyển từ array sang json thì chữ tiếng việt nó biến thành những kí tự, không phải tiếng việt. Em có search trên mạng thì họ bảo đó là dạng khi chuyển sang json. Thế cho em hỏi khi lấy dữ liệu từ json, có cách nào chuyển lại font tiếng việt không ạ. Em xin cảm ơn. Theo mình nghĩ đó là mã utf8 chắc convert được thử dùng tool này xem sao. Từ Utf8 thành unicode. Lúc mới vào UIT :byebye: Học xong năm 1: :haha: Học xong năm 2: :sexy: Học xong năm 3: :baffle: Bạn đăng nhập vào hosting đi tới phần quản lý cở sở dữ liệu database MySQL thông thường các hosting ở Việt Nam sử dụng PHPMyAdmin
Bạn kéo thanh cuộn trình duyệt xuống dưới:
Sau đó nhấp chuột vào nút "Go" để xuất file CSV / Bạn đặt tên file và lưu vào ổ địa D của máy tính. Ví dụ: db-sua-loi-font-file.csv Sửa lỗi font tiếng Việt file CSVNhấp chuột phải vào file bạn vừa xuất db-sua-loi-font-file.csv / Chọn "Edit with Notedpad++ hoặc chọn Open with / chọn More app / Tìm chương trình Notepadd++ bạn đã cài đặt ở ổ đĩa C của Windows: C:\Program Files \ Notepad++ \ notedpad++.exe hoặc C:\Program Files (x86) \ Notepad++ \ notepad++.exe Nếu bạn chưa cài Notedpad++ bạn có thể download Notepad++ hoàn toàn miễn phí từ link: https://notepad-plus-plus.org/ Sau khi đã mở file CSV với Notepad++ / trên menu Notepad++ bạn vào Encoding / UTF-8-BOM / Sau đó lưu lại Hôm nay có ông anh nhờ kiểm tra giúp vì cần xuất data từ hệ thống quản lý đơn hàng cũ sang Google Sheets, sử dụng App Scripts để truy cập database sau đó lấy dữ liệu insert ra google sheets, nhưng gặp phải lỗi sai kí tự tiếng Việt. Bên Website vẫn hiện đúng, nhưng trong data hiển thị sai ví dụ:
Sau khi kiểm tra thì thấy bên trong DB đã lưu sai như vậy chứ ko phải do cách insert phía google scripts, tìm hiểu tham khảo thấy bài viết giải thích về vấn đề này khá chi tiết trên StackOverFlow.
Như vậy chính xác vấn đề chúng ta cần giải quyết là trường hợp được gọi là Mojibake. Có từ khoá rồi, google sẽ ra cách fix phần data, nhưng để giải quyết triệt để thì cần fix 2 điểm: 1/ Sửa lỗi data hiện có
2/ Sửa lỗi lưu từ phía code để data mới ko sai nữaCái này tuỳ vào source code tuy nhiên theo mình các framework mới, thông thường sẽ ko bị, source web cũ của ông anh dùng PHP5 và là code tự viết nên sẽ có nhiều khả năng, và trong trường hợp này là khai báo sai khi query MySQL, lỗi cũng khá phổ biến, nhưng cũng hơi khó nhận ra.
Test lại thêm dòng sản phẩm mới thấy dòng dữ liệu mới lưu đúng là tiếng Việt thì boom! Vậy là ổn rồi. |