Dạo trước có viết một trang WordPress dùng để nhận phản hồi (comment) sau đó xuất ra (export) dạng .CSV rồi nhập vào (import) cho một trang web khác. Lúc viết không chú ý kiểu dữ liệu nên sau lý xuất ra, nhập vào xảy ra tình trạng nội dung có chứa các ký tự lạ kiểu như: ’, “, ‘,…
Sau khi tìm hiểu nguyên nhân thì biết được rằng những ký tự này do bị mã hóa các ký tự đặc biệt như: “, ”, ‘, ’,…
Và giải pháp để giải quyết với các nội dung trong cơ sở dữ liệu thì ta sẽ sử dụng lệnh cập nhật (UPDATE) và thay thế (REPLACE) để đổi các ký tự lạ thành đúng ký tự chuẩn. Sau đây là các đoạn lệnh cụ thể:
Lệnh sửa nội dung trong bài viết:
1 2 3 4 5 6 7 8 | UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'â€', '”'); UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’'); UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘'); UPDATE wp_posts SET post_content = REPLACE(post_content, '—', '–'); UPDATE wp_posts SET post_content = REPLACE(post_content, '–', '—'); UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-'); UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '…'); |
Lệnh sửa nội dung trong phản hồi:
1 2 3 4 5 6 7 8 | UPDATE wp_comments SET comment_content = REPLACE(comment_content, '“', '“'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, 'â€', '”'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, '’', '’'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, '‘', '‘'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, '—', '–'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, '–', '—'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, '•', '-'); UPDATE wp_comments SET comment_content = REPLACE(comment_content, '…', '…'); |
Với các bảng khác các bạn có thể chạy lện theo cú pháp tổng quát:
1 | UPDATE [table_name] SET [col_name] = REPLACE([col_name], '…', '…'); |
Với [table_name] tương ứng với tên bảng, và [col_name] tương ứng với tên cột.
Chúc các bạn thành công.
Huỳnh Mai Anh Kiệt