09/10/2018, 22:35

PHP / MYSQL trang web bang unicode

Than gui cac ban.
Minh dang lam 1 trang web bang PHP/MySQL. Minh dung Easy PHP 1.7 de test trang web nay.
Trang Web minh gom co 2 thu tieng ( Phap & Vietnam)
Nen Minh phai sua dung UNICODE UTF-8.

Vi thé, trong moi trang web, minh deu thêm vao 1 script nhu sau :

<?php
header('Content-type: text/html; charset=UTF-8');

echo '<?xml version="1.0" encoding="utf-8" ?>';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//FR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd(...)">

<html xmlns="http://www.w3.org/1999/xhtml(...)" lang="fr" xml:lang="fr">

<head>
.............................
</head>


Trong phan back-end, minh co lam 2 FORM : 1 FORM de Insert va 1 FORM de update trang web cua minh
Nhung khi minh dung FORM Insert de insert data vao trang web nay, thi nhung chu Viêtnam bi thay doi.
Vi du nhu cau : "Kính chúc Ông Bà Cô Bác một năm mới thanh thản"
lai bi sua thanh : "Kính chúc Ã?ng Bà Cô Bác má»?t nÄ?m má»?i tha.".

Cac ban da tung viet nhung trang web bang PHP/MySql va da dung UNICODE, Xin cac ban vui long giup do minh nhé!

Minh da tim trên Internet, va thay duoc, co nguoi khuyen rang phai tao 1 file .htaccess va viet vao do : "AddDefaultCharset utf-8"....Minh da lam thu nhung cung khong duoc.

Co nguoi bao minh phai sua file httpd.conf cua APACHE server, va file php.ini cua easy PHP nhung cung khong duoc.

Cac ban co cach nao giup do minh khong?

Xin thant that cam on cac ban.

HSKA

Ps: minh viet tieng Viet khong ranh, nen doi khi phai them vao 1 vai chu tieng Anh, mong cac ban thong cam nhé!
bathazar viết 00:37 ngày 10/10/2018
Bạn nên cho thêm charset vào bảng meta trên bảng <head>. Mỗi lần mhập dữ liệu vào data nên để default là charset UTF-8. Bạn cũng có thể lên mysql.com để tải bản mysql hỗ trợ Unicode và UTF_8
dtt_vn viết 00:42 ngày 10/10/2018
đừng dùng hàm header chi cho mệt, chỉ cần add tag này vào phần head là ok
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Chúc thành công
bathazar viết 00:41 ngày 10/10/2018
Đúng rồi dùng meta la` hay nhat !
hska viết 00:46 ngày 10/10/2018
toi cung da dung : <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> trong trang web chua dung FORM INSERT nhung cung khong duoc.
Dong y, khi toi danh UNICODE vao trong FORM INSERT thi tac ca deu tot.
Sau khi INSERT xong, neu toi muon UPDATE thi khong duoc nua, vi nhung chu VN bien doi het...
Nhung neu toi tro vao PhpMyAdmin, chon Charset utf-8 thi tac ca deu tôt ca.
Neu moi lan phai vao PhpMyAdmin de UPDATE du lieu thi kho qua (hien gio toi phai lam nhu thé). Chinh vi the toi moi tao 2 FORM nay de nap du lieu va sua loi de dang hon...
Co phai do la do APACHE khong? nghe noi rang, APACHE dung Charset default charset=iso-8859-1. nhung toi khong biet lam thé nao de chinh lai APACHE.

Mong su giup do cua cac ban.
namhoang viết 00:38 ngày 10/10/2018
Thực ra có thể dùng Dreamwave Mx để định nghĩa thẻ meta như trên cực kỳ đon giản nhưng khi sử dụng session sẽ bị báo lỗi, hạn chế này mình đã gặp mà chưa biết cáh giải quyết. Nếu có ai biết xin post lên để cùng xem
bathazar viết 00:48 ngày 10/10/2018
Bạn nâng lên bản 7.0.1 của DrMX đi... nó hỗ trợ đủ cả rồi đấy.... Vào trang chủ mà down cả bạn dtt__vn cũng vậy ...
dtt_vn viết 00:48 ngày 10/10/2018
thật ra, việc update hay insert chẳng liên quan gì cả.
Bạn có thể update bình thường mà chẳng bị lỗi.
thẻ meta chỉ đặt trong phần head trong một page, không đặt trong form
tôi đã từng gặp trường hợp như bạn. Tôi đã giải quyết thế này:
1. Kiểm tra phiên bản Apache hiện dùng. Tôi dùng PHPDev 5.0 Beta, chả biết thế nào. Kiểm tra chỉ mang tính tượng trưng.
2. Coi chừng file php code của bạn. Có thể file PHP Code bạn lưu lại với chuẩn UTF-8, đôi khi Apache bị khùng đó. Thông thường, file PHP Code tôi chỉ dùng Default Charset for English mà thôi

Nếu không giải quyết được thì post file code lên đây, tôi xem giúp cho.
Xin đính chính: không cần nâng cấp DreamWV 10 gì gì cả.
Nhớ send đầy đủ, cả file sql code statement nữa nhé
ohyesssvn viết 00:47 ngày 10/10/2018
Bạn thử mở file php.ini sửa các dòng sau

default_charset = "UTF-8"

extension=php_mbstring.dll

mbstring.internal_encoding = UTF-8

mbstring.encoding_translation = UTF-8

tại vì theo mặc định thì php không xử lý multi byte string. Nếu chưa được thì bạn tìm những dòng có chữ mbstring sửa tiếp. Hy vọng nó họat động
dtt_vn viết 00:48 ngày 10/10/2018
tốt nhất la send code
Bài liên quan
0