Thứ Tư, 23 tháng 10, 2013

Cách Convert data từ ISO sang UTF8 VBB 4 + mọi phiên bản

Đôi khi thiết kế một diễn đàn, bạn không để ý thì có thể gặp phải một số lỗi cơ bản sau với Charset:

Vì charset mặc định của ngôn ngữ tiếng Anh là ISO-8859-1, khi bạn phát triển mà chưa thay ngôn ngữ ngay, khi dữ liệu đã hòm hòm mà thay ngôn ngữ tiếng Việt có Charset là UTF-8, thì sẽ bị lỗi hết font mà không cách nào đỡ được.

Do sử dụng ngôn ngữ mặc định có Charset ISO-8859-1 nhưng sau này bị lỗi không tương thích với các mod sử dụng UTF-8.

Nói chung, bạn nên sử dụng Charset UTF-8 từ đầu nếu không muốn bị lỗi và lằng nhằng về sau này. Tuy nhiên nếu bạn quên thì sao? Ở VBB 3.8 có một mod là vcharset converter để chuyển đổi, nhưng nó lại không chạy được trên VBB 4. Nhiều bạn cắn răng làm lại từ đầu.


PHIÊN BẢN 3.8.X


Download file đính kèm và giải nén ra.
Backup toàn bộ CSDL. Đổi lại tên chuẩn nếu bạn nào đổi thư mục Admincp.
Upload hết các thư mục trong upload lên root (thư mục có chứa file index.php)
Import file product-charset_converter.xml trong thư mục product
Vào AdminCP, có một mục mới trên đầu là vCharset Converter.
Vào đó và bấm Start Convert. Chờ đợi và không thao tác gì cả.
Vào Language Manager, bấm Edit Setting của phần ngôn ngữ và chuyển Charset của nó về UTF-8.

PHIÊN BẢN 4.X
Đơn giản các bạn chỉ cần làm như sau:
Công cụ: Notepad ++: http://download.tuxfamily.org/notepa....Installer.exe

Thực hiện:


Backup toàn bộ databases.
Sử dụng ngôn ngữ UTF-8. Font sẽ bị lỗi.
Export các table sau trong CSDL: forum, post, postparsed, style, thread, user. (chỉ cần quan tâm tới các tab này thôi, nếu chơi hết CSDL thì nặng không đỡ được)
Mở file *.sql vừa export bằng Notepad ++.
Bấm vào nút Encoding, chọn Encode in ANSI.
Bấm Ctrl + A và copy toàn bộ trang.
Bấm nút Encoding, chọn lại Encode in UTF-8 with BOM.
Paste
Save!

Vào database xóa bỏ các table vừa export rồi import file sql vừa lưu vào.
Vào admincp >> Maintenance >> Update Counter >> Rebuid Forum Infomation.

DONE!

Chú ý toàn bộ quá trình bạn không được chỉnh sửa chữ nào trong nội dung databases, đơn giản chỉ là thay đổi Encoding.

Không có nhận xét nào:

Đăng nhận xét

Bài đăng phổ biến