09/10/2018, 23:26

Khó khăn PHP&MySQL Tiếng Việt từ localhost

Mình đang viết một source tin tức nhỏ bằng PHP, charset là utf-8 trên trang news và CP của admin.
Trong database để mặc định cái Collation là latin1_swedish_ci với PHPMyAdmin - 2.8.2.4 Nhập dữ liệu trên localhost thì tất cả đều OK, Tiếng Việt hiện lên đầy đủ. Backup ra rồi Import lên host chạy thì lỗi sai hết font.
Mình thử lại tất cả các charset trong PHPMyAdmin của localhost rồi trên host nhưng vẫn chưa được. Bạn nào trợ giúp mình với!

Nhân đây cho hỏi thêm đoạn này:

//doan ma (1) show title url
PHP Code:
$url $PHP_SELF;
$url str_replace("/index.php","",$url); 
Giả sử mình có domain: http://www.ddth.com/
Trang news: http://www.ddth.com/news/
chạy trên PHP4 thì OK:

http://www.ddth.com/news/news1.html

Còn trên PHP5 nó ra:

http://www.ddth.com/news1.html

Vậy nó bị sai ở đâu và khắc phục như nào vậy các bạn? Thanks!
conan1212 viết 01:28 ngày 10/10/2018
Vậy khi tạo CSDL cho web thì nên chọn charset là gì vậy mấy bác, Conan thường để trống, vì nếu Conan chọn charset thì khi lấy dữ liệu ra trang web thì bị lỗi font [ Conan tạo CSDL với phpMyAdmin ]
Còn nếu không chọn charset thì theo như một số người bảo là khi backup thì phải chọn đúng loại charset cho nó, nếu không muốn bị lỗi font, mà lúc tạo thì có chọn charset đâu mà chọn cho đúng nhỉ? Mà trong phpMyAdmin thì em chả thấy chổ nào cho chọn charset khi backup hết trơn .
scripter viết 01:40 ngày 10/10/2018
Theo kinh nghiệm về charset của tôi thì khi tạo table nên tạo table có kiểu charset là: utf-8 general ci.
pcdinh viết 01:42 ngày 10/10/2018
1: Thiếu thông tin về phiên bản MySQL, charset trên server, client và connection. Không hỗ trợ được.

2. Bồ nên từ bỏ thói quen dùng biến global kiểu PHP 4.1. Nên thay bằng $_SERVER['PHP_SELF']. Phần còn lại có vẻ như do RewriteBase của bồ có vấn đề
fuju viết 01:27 ngày 10/10/2018
Thực ra để charset trong mysql mặc định không ảnh hưởng gì đến việc hiển trị trên client vì luôn có sự mã hóa <> giải mã trước <> sau khi insert -> không phải care chuyện này . Vấn đề là charset của bạn trước và sau phải giống nhau. Ví dụ : admin (để tạo tin) bạn dùng UTF-8 (bác sỹ khuyên dùng) thì phia client web cũng là UTF-8.
Hi vọng bạn sẽ hiển thị đúng !
ndhpit viết 01:31 ngày 10/10/2018
Quote Được gửi bởi fuju View Post
Thực ra để charset trong mysql mặc định không ảnh hưởng gì đến việc hiển trị trên client vì luôn có sự mã hóa <> giải mã trước <> sau khi insert -> không phải care chuyện này . Vấn đề là charset của bạn trước và sau phải giống nhau. Ví dụ : admin (để tạo tin) bạn dùng UTF-8 (bác sỹ khuyên dùng) thì phia client web cũng là UTF-8.
Hi vọng bạn sẽ hiển thị đúng !
uhm, cảm ơn bạn nhiều lắm,tui đã hiển thị được rùi.
Bài liên quan
0