Mysql bị lỗi font tiếng việt

nó bị lỗi ở trong csdl sẵn luôn ạ. có cách nào chuyển về định dạng thường khi xuất ra web không ạ.!
ảnh dưới
Capture

bạn xem thử có chọn utf-8 khi tạo bảng ko?

3 Likes

mình có, trước mình có thuê họ viết web này sau không dùng nữa muốn chuyển dữ liệu qua bên code mới. csdl này nó như vậy luôn ạ. mở bằng editor notepad++ thì cũng vậy. mình chỉ cần nó xuất ra đc trình duyệt hiển thị tiếng việt là dc. k quan trọng trong mysql nữa. mình chuyển qua csdl mới. copy thuần luôn, vì đây chỉ là điều khoản dịch vụ cũng vài chục post nhưng khá quan trọng.

nếu csdl đã chọn utf-8 rồi thì việc hiển thị nó lên trình duyệt bị lỗi utf-8 sẽ phải xem phần char-set của ngôn ngữ xử lý các bản ghi đó. cũng ko biết cụ thể lỗi ở chỗ nào do ko có log của lỗi.

2 Likes

Mình không hiểu ý của câu này, dữ liệu với code thì có liên quan gì với nhau đâu

câu trên nghĩa là gì?
nghĩa là nào giờ nó đã “lỗi font”? là nào giờ web hiển thị cũng bị?
nếu bản thân ngay từ đầu lúc người ta giao cho bạn đã lỗi như vậy thì bạn đi hỏi người bạn đã thuê chứ nhỉ, bạn chấp nhận một sản phẩm bị lỗi?

bạn mở database bằng notepad++? how?

Nếu bạn mong muốn sự giúp đỡ hữu ích hơn, bạn cần show nhiều thông tin hơn và phải rõ ràng hơn
Còn với bài post này thì chắc sẽ không ai giúp bạn được đâu

1 Like

Chủ topic upload file .sql xuất ra lên một dịch vụ chia sẻ file nào đó rồi gửi tin nhắn cho mình URL tới file đó, mình lấy về và xử lý giúp cho. Ngày xưa làm mấy cái diễn đàn bị lỗi “mì gói bẻ vụn” này rất thường xuyên nên có kinh nghiệm thực chiến, khả năng 90% giải quyết được vấn đề.

3 Likes

Thím Thìn làm xong thì chia sẻ bí kíp thực chiến nhé.

Yes. Nếu thành công thì sẽ chia sẻ, thất bại cũng viết ra tại sao lên đây. Không dám chắc thành công 100% vì lâu ngày chưa làm không rõ có còn nhớ nghề không nữa.

3 Likes

ha, cái này có thể do bạn đang cố lưu tiếng Việt vào trong bảng có charset là latin1 (charset mặc định của MySQL).

latin1 có đặc trưng là 8-bit-single-byte nên chỉ hiển thị tối đa 256 characters (trong đó nhiều chữ cái tiếng Việt nằm ngoài bảng này). Cái bạn cần làm là kiểm tra xem dữ liệu đã bị corrupt chưa bằng cách thử:

SELECT name, CONVERT(CAST(name as BINARY) USING utf8) FROM table_name

xem dữ liệu khi cast sang utf8 có bị lỗi không. Nếu không bạn có thể xem bài viết [0] để hiểu cách chuyển bảng có charset latin1 sang utf8 hoặc utf8-mb4

[0] https://nicj.net/mysql-converting-an-incorrect-latin1-column-to-utf8/

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?