Nếu bạn đã chuyển đổi máy chủ lưu trữ web hoặc thay đổi cơ sở dữ liệu cho blog WordPress của mình, bạn có thể gặp sự cố khi các ký tự nước ngoài không hiển thị đúng trong trang web của bạn. Thay vì các nhân vật nước ngoài, bạn sẽ thấy nhiều dấu hỏi (???) ở vị trí của nó. Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách khắc phục sự cố này và hiển thị ngôn ngữ thích hợp mà không làm mất bất kỳ dữ liệu nào.

Mã hóa ký tự là gì?

Trước khi đi đến các nguyên nhân và giải pháp cho vấn đề này, chúng ta cần phải rõ ràng về mã hóa ký tự. Các từ và câu trong bất kỳ ngôn ngữ nào được tạo thành từ các ký tự. Các ký tự này được nhóm thành các bộ ký tự. Mỗi ký tự được lưu trữ trong bộ nhớ máy tính bằng cách sử dụng mã nhị phân. Sử dụng mã này, máy tính có thể giải mã ký tự thực. Mã nhị phân này được gọi là mã hóa ký tự.

Các ngôn ngữ khác nhau sử dụng các mã khác nhau để chỉ các ký tự khác nhau. Cùng một mã trong hai langauges có thể có nghĩa là các ký tự hoàn toàn khác nhau. Điều này được quyết định bởi mã hóa ký tự nào được máy tính sử dụng.

Bạn có thể thấy một số bộ ký tự trên W3Schools được sử dụng trên Internet. Đi đến Wikipedia cho bộ hoàn chỉnh các bộ characte.

Bạn có thấy ??? trong blog WordPress của bạn?

Có thể có một vài nguyên nhân dẫn đến việc hiển thị các ký tự sai. Trước hết, bạn cần đảm bảo rằng bạn đang sử dụng cùng một ký tự được đặt trong tệp wp-config.php của bạn. Hãy tìm dòng sau và đảm bảo rằng nó không được nhận xét:

 define ('DB_CHARSET', 'utf8'); 

Thứ hai, bạn cần phải kiểm tra xem chủ đề của bạn có đang sử dụng bộ ký tự được đặt trong tệp wp-config.php hay không. Tìm dòng sau trong HTML của bạn:

Và cuối cùng, bạn cần phải kiểm tra xem nội dung cơ sở dữ liệu của bạn có được lưu trữ với cùng một bộ mã hóa ký tự mà bạn đang sử dụng trong tệp wp-config.php và HTML hay không. Nếu bạn đang sử dụng phpMyAdmin để quản lý cơ sở dữ liệu của bạn, bạn sẽ có thể thấy collation máy chủ hiện tại trong Cài đặt chung.

Thay đổi bộ ký tự của cơ sở dữ liệu WordPress hoàn chỉnh không phải là một nhiệm vụ dễ dàng và nên được thực hiện với rất nhiều sự quan tâm. Dưới đây là các bước để chuyển đổi cơ sở dữ liệu thành bộ ký tự lựa chọn của bạn.

1. Trước hết, chúng ta cần phải kiểm tra bộ ký tự hiện tại của cơ sở dữ liệu. Đây là truy vấn SQL để kiểm tra:

 HIỂN THỊ VARIABLES LIKE "character_set_database"; 

2. Nếu bộ ký tự không phải là thứ bạn muốn, bạn nên sao lưu cơ sở dữ liệu của mình trước khi tiếp tục.

3. Chạy truy vấn SQL sau để thay đổi tập hợp characater của cơ sở dữ liệu hoàn chỉnh:

 ALTER DATABASE BỘ ĐIỀU KHOẢN MyDb utf8; 

Thay đổi “MyDB” thành tên cơ sở dữ liệu của bạn.

4. Bây giờ chuyển đổi bảng “wp-posts” thành mã hóa ký tự mà bạn muốn:

 ALTER TABLE wp_posts CHARACTER SET utf8; 

Thay đổi "wp_" nếu bạn đang sử dụng một tiền tố khác.

Các bước này sẽ xóa các dấu chấm hỏi hoặc các ký tự lạ khác và thay vào đó sẽ hiển thị các ký tự nước ngoài thích hợp. Nếu bạn có nhiều cột trong cơ sở dữ liệu WordPress được đặt thành bộ ký tự tùy chỉnh, bạn sẽ cần thay đổi bộ ký tự của từng cột một.

Vì UTF-8 là mã hóa ký tự thường được sử dụng nhất, nếu blog của bạn sử dụng một số mã hóa ký tự khác và bạn muốn thay đổi nó thành UTF-8, bạn có thể sử dụng plugin được gọi là UTF-8 DB Converter. Mặc dù nó đã không được cập nhật trong một thời gian khá dài, nó sẽ có thể thực hiện nhiệm vụ của nó một cách hiệu quả. Xin lưu ý rằng nếu bạn có một cơ sở dữ liệu lớn, việc chuyển đổi bộ ký tự sẽ mất một thời gian dài.

Hãy cho chúng tôi biết về trải nghiệm của bạn nếu bạn gặp vấn đề tương tự.