2012-11-21 50 views
9

Tôi có những chữ Hán:Làm cách nào để hiển thị đúng các ký tự tiếng Trung trong PHP?

汉字/漢字''test 

Nếu tôi làm

echo utf8_encode($chinesevar); 

nó sẽ hiển thị

??/??''test 

Hoặc thậm chí nếu tôi chỉ cần làm một đơn giản

echo $chinesevar 

nó S cho đến khi hiển thị một số ký tự lạ ...

Vậy làm cách nào để hiển thị các ký tự tiếng Trung này mà không sử dụng thẻ meta < với điều UTF-8 .. hoặc điều ini_set UTF-8 hoặc thậm chí tiêu đề() điều gì với UTF-8?

+2

có thì bạn hiển thị này? trong một trang web? trang web được đặt thành utf-8 không? bạn phải duy trì bộ ký tự giống nhau trong toàn bộ đường dẫn hiển thị. –

+1

[Làm việc tốt cho tôi] (http://codepad.org/aWn4l6Gx). Thiết lập của bạn là gì? – Neal

+0

Bạn đang sử dụng trình soạn thảo nào để tạo tệp .php? – Weacked

Trả lời

11

đơn giản:

  1. lưu mã nguồn của bạn về sản lượng UTF-8
  2. một HTTP header để xác định trình duyệt của bạn rằng nó nên hiểu được trang đó sử dụng UTF-8:

    header('Content-Type: text/html; charset=utf-8'); 
    

Xong.

utf8_encode là để chuyển đổi chuỗi được mã hóa Latin-1 thành UTF-8. Bạn không cần nó.

Để biết thêm chi tiết, hãy xem Handling Unicode Front To Back In A Web App.

+0

Cột 'colation' là gì? –

1

Look rằng tập tin bạn đang ở trong UTF8 không BOM và rằng máy chủ web của bạn cung cấp trang web của bạn trong UTF8

HTML:

<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 

trong PHP:

header('Content-Type: text/html; charset=utf-8'); 

Và nếu bạn làm việc với một cơ sở dữ liệu thì cơ sở dữ liệu của bạn là UTF-8 nếu bạn đọc văn bản từ dữ liệu của mình căn cứ.

+1

tôi đã thêm tiêu đề và cũng lưu tệp mã nguồn trong mã hóa utf8 nhưng vấn đề vẫn còn. Tôi đang làm việc với mysql –

0

Có lẽ hãy nhìn vào các giải pháp sau:

  1. bạn cơ sở dữ liệu, bảnglĩnh vực đối chiếu nên utf8_unicode_ci
  2. Kiểm tra nếu hồ sơ của bạn đang hiển thị các ký tự đúng trong cơ sở dữ liệu ...
  3. Đặt html của bạn để UTF8

  4. Thêm dòng sau vào php của bạn sau khi kết nối với cơ sở dữ liệu

    mysqli_set_charset ($ con, "utf8");

http://www.w3schools.com/php/func_mysqli_set_charset.asp

Các vấn đề liên quan