09/10/2018, 23:26

Lỗi hiển thị TiếngViệt, giúp em với mấy anh ơi.gấpgấp

Em có làm một cái Shop, trong phpMyAdmin em đã set là UTF-8, tiếng việt có dấu hiển thị t rất tốt. Trong các trang em viết em cũng cấu hình charset=UTF-8, nhưng khi chạy thì những phần có truy xuất từ cơ sở dữ liệu hiển thị toàn ký tự lung tung, còn những phần tĩnh khác thì Tiếng việt rất tốt. Em không biết cách khắc phục seo nữa, mấy anh chỉ giúp em với, em xin hậu tạ mấy anh, em cần gấp quá. Hix.hix...em dốt lắm mấy anh đừng la tội nghiệp
pcdinh viết 01:40 ngày 10/10/2018
Phần text tĩnh của bạn chịu ảnh hưởng của enc lúc nhập và header trả về. Còn dữ liệu trong database lại chịu ảnh hưởng của
+ Client agent enc lúc nhập
+ Client conn vào MySQL lúc nhập
+ Server enc của MySQL lúc nhập
+ Table type lúc nhập
+ Connection enc lúc xuất.

Bạn cần đảm bảo các yếu tố này đồng bộ là OK. Nếu ko nhập thì bạn đang sử dụng conn enc lúc xuất là iso-8859. Cách chỉnh có ghi rõ trong tài liệu của MySQL.
EmMoiHocLamWeb viết 01:34 ngày 10/10/2018
Dạ,anh pcdinh có thể chỉ em chi tiết cách khắc phục được ko ạ, quả thật em đọc xong vẫn chưa rõ lắm. Trong datbase của em, tất cả em đều set là utf-8 hết đó ạ. Giờ đồng bộ là như thế nào ạ, kiến thức em chưa vững nên em mong anh bỏ chút thời gian chỉ dạy cho em ạ, em cảm ơn anh nhiều.
conan1212 viết 01:40 ngày 10/10/2018
Thông thường thì tạo CSDL chọn mặc định [để trống trong phpMyAdmin ] sẽ không bị lỗi tiếng Việt, còn nếu chọn charset thì phải thiết lập charset cho kết nối với CSDL. Không phải lúc nào cũng là utf-8 đâu bạn, nếu bạn cho rằng CSDLcharsetutf-8 mới hiển thị đc tiếng Việt thì bạn thử xem cái forum này có phải làm với cái charsetutf-8 không?
EmMoiHocLamWeb viết 01:42 ngày 10/10/2018
Dạ, bây giờ em đã dần hiểu được vấn đề rồi ạ, do em thiết lập kết nối CSDL chưa đúng, nhưng em vừa sửa lại rồi vẫn chưa được ạ. Mấy anh xem giúp em sai hay thiếu chỗ nào cần bổ sung với, đây là mấy cái hàm của em ạ:
function mysql()
{
global $SQL_DBASE;
global $SQL_USER;
global $SQL_PASS;
global $SQL_HOST;
global $lang;

$this->DBASE = $SQL_DBASE;
$this->USER = $SQL_USER;
$this->PASS = $SQL_PASS;
$this->HOST = $SQL_HOST;
$this->LANG = $lang;

$conn = @mysql_connect($this->HOST,$this->USER,$this->PASS);
if(!$conn) {
$this->error('ConnectServerError');
}

if(!mysql_select_db($this->DBASE,$conn)) {
$this->error('ConnectDatabaseError');
}

if(!mysql_query("SET NAMES 'utf8'",$conn));

$this->CONN = $conn;
}

function error($text)
{
//$no = mysql_errno();
//$msg = mysql_error();
echo "<br><br><center><h4>[ConnectDatabaseError]</h4></center><br>";
exit;
}


////////////////Select SQL//////////////

function select ($sql="", $column="")
{
if(empty($sql)) {
return false;
}

if(!eregi("^select",$sql)) {
$this->error($lang['SqlWrong']);
return false;
}

$conn = $this->CONN;

$results = mysql_query($sql,$conn);

if( (!$results) or (empty($results)) ) {
//$this->error($this->LANG['SelectEmpty']);
return false;
}

$count = 0;
$data = array();
while ( $row = mysql_fetch_array($results)) {
$data[$count] = $row;
$count++;
}
mysql_free_result($results);
return $data;
}


/////////// Insert SQL ///////////////
function insert ($sql="") {
if(empty($sql)) {
return false;
}

if(!eregi("^insert",$sql)) {
$this->error($this->LANG['SqlWrong']);
return false;
}

$conn = $this->CONN;
$results = mysql_query($sql,$conn);

if(!$results) {
//$this->error($this->LANG['InsertFail']);
return false;
}
return true;
}

Em quả thật dốt lắm mong mấy anh chỉ bảo ạ, học theo sách vở chỉ được vậy thôi, chứ em chưa có kinh nghiệm gì hết đâu ạ
bka viết 01:31 ngày 10/10/2018
Hông Biết Có Phải Từ Cái Này Không Nhỉ

if(!mysql_query("SET NAMES 'utf8'",$conn));


utf-8

po' chym
EmMoiHocLamWeb viết 01:32 ngày 10/10/2018
Quote Được gửi bởi bka View Post
Hông Biết Có Phải Từ Cái Này Không Nhỉ

if(!mysql_query("SET NAMES 'utf8'",$conn));


utf-8

po' chym
Dạ chết thật, em lại sơ suất ạ. Nhưng em sửa lại xong rùi, kết quả vẫn như cũ ạ
pcdinh viết 01:36 ngày 10/10/2018
Bồ đã sửa cái gì theo khuyến cáo của bka rồi???????
EmMoiHocLamWeb viết 01:40 ngày 10/10/2018
Dạ rồi anh ạ, sao bữa nay anh mới xuất hiện. Anh cố giúp em với, em được biết ở DDTH của mình anh là đại cao thủ mà anh. Em cần gấp lắm ạ
terafunny viết 01:33 ngày 10/10/2018
Quote Được gửi bởi EmMoiHocLamWeb View Post
Dạ rồi anh ạ, sao bữa nay anh mới xuất hiện. Anh cố giúp em với, em được biết ở DDTH của mình anh là đại cao thủ mà anh. Em cần gấp lắm ạ
Xóa CSDL rồi làm lại từ đầu đi em ơi. Search trên google: "Khắc phục lỗi tiếng việt MySQL" là có giải đáp
Bài liên quan
0