Ko hiển thị đc tiếng Việt rõ ràng trên .php, giúp mình với

Thảo luận trong 'Lập Trình Web' bắt đầu bởi StarShaper, 30/7/07.

  1. StarShaper

    StarShaper Mario & Luigi

    Tham gia ngày:
    10/5/05
    Bài viết:
    704
    Ko hiểu sao mình type dòng chữ sau đây
    Chào mọi người
    thì nó lại hiển thị như sau :
    Chào m�?i ngư�?i

    Mặc dù mình đã thêm tag <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> vào index.
    Có ai biết vì sao ko ???
     
  2. Darkgamer

    Darkgamer The Warrior of Light

    Tham gia ngày:
    23/2/03
    Bài viết:
    2,086
    Nơi ở:
    World Of Software
    Lỗi trên có thể do dùng trình WordPad để type tiếng việt , PHP nó nhận diện kí tự Unicode khác với Html nên không thể gõ bình thường được . Để khác phục , bạn hãy chuyển qua 1 trình chuyên nghiệp hơn , như DreamWeaver chẳng hạn .
     
  3. Powers_2004

    Powers_2004 Hàng VN xuất khẩu \m/ Moderator

    Tham gia ngày:
    13/7/04
    Bài viết:
    1,171
    Nơi ở:
    Hanoi
  4. StarShaper

    StarShaper Mario & Luigi

    Tham gia ngày:
    10/5/05
    Bài viết:
    704
    Ví dụ như thế này.
    Các bác vào đây.
    www.olala.tv/magicblock
    Type dòng chữ chào mọi người vào phần thông điệp rồi nhấn enter thì biết.
    Mình type lên web chứ hông dùng trình nào để viết cả
     
  5. darkxiiindp

    darkxiiindp Mr & Ms Pac-Man

    Tham gia ngày:
    20/5/07
    Bài viết:
    170
    Vừa kiểm tra rồi. Font đúng. encoding cũng đúng, post dữ liệu lên server cũng dùng post.

    >>> Lỗi ở database. 90% là do lúc create database không chỉnh encoding thành utf-8 mà để mặc định (latin1). Cho nên lúc insert dữ liệu vào nó bị sai đi. Convert tất cả các table thành utf-8 là chạy.
    ___________________________
    Có ít time free nên tui nói kỹ hơn 1 chút. Ký tự thuộc latin1, mỗi chữ chỉ có 1 byte. Trong khi đó ký tự utf-8 có chữ có 1 byte có chữ cần 2 bytes.

    Chào mọi người
    Chào m�?i ngư�?i

    Nhìn 2 dòng trên có thể biết là chữ ọ và chữ ờ là 2 bytes. Các chữ hiển thị bình thường thì đúng là 1 bytes.

    Khi sử dụng encoding utf-8, 2 bytes cạnh nhau mà tương ứng với ký tự chữ nào đó thì nó sẽ hiện chữ đó. Trong khi đó với latin1 thì 2 byte nó hiển thị lần lượt từng byte một.
     
  6. StarShaper

    StarShaper Mario & Luigi

    Tham gia ngày:
    10/5/05
    Bài viết:
    704
    Chào bạn, rất cám ơn sự giúp đỡ của bạn, nhưng mình vô phpadmin thì thấy nó đã utf-8 rùi bạn à. hix hix
    [​IMG]
     
  7. Darkgamer

    Darkgamer The Warrior of Light

    Tham gia ngày:
    23/2/03
    Bài viết:
    2,086
    Nơi ở:
    World Of Software
    Vậy chắc là do đoạn code phần xử lý phần submit đấy , vì trước khi insert vào database thường sẽ phải qua nhiều khâu , nên trong những khâu đó đã có phần lọc đi những ký tự của UTF . Bạn thử check lại xem .
     
  8. StarShaper

    StarShaper Mario & Luigi

    Tham gia ngày:
    10/5/05
    Bài viết:
    704
    Thx bác darkgamer. Lúc đầu mình cũng nghĩ vậy đó, đã kiểm tra nhưng ko có vấn đề gì cả.
    Ko lẽ bó tay sao ???
     
  9. Darkgamer

    Darkgamer The Warrior of Light

    Tham gia ngày:
    23/2/03
    Bài viết:
    2,086
    Nơi ở:
    World Of Software
    Bạn quăng cho mình cái source code đó đi .
     
  10. StarShaper

    StarShaper Mario & Luigi

    Tham gia ngày:
    10/5/05
    Bài viết:
    704
    Đã fix đc lỗi rồi, thx darkgamer và dark13ndp nhìu.
    Rep 2 người phát coi như để thx
     

Chia sẻ trang này