2010-12-14 43 views
5

Tôi có dữ liệu có ký tự đặc biệt (dấu giọng Pháp). Khi tôi chọn với kịch bản php và đầu ra (in) nó có vẻ tốt. Khi tôi vượt qua Smarty, các nhân vật sẽ thay đổi. Html của tôi có cài đặt follwoing: meta http-equiv = "content-type" content = "text/html; charset = utf-8" Bạn không chắc chắn những gì bị thiếu hoặc không chính xác?Smarty: các ký tự đặc biệt được thay đổi không mong muốn- utf8

gr, Patrick

+0

Trong trình duyệt, Xem -> Mã hóa ký tự, nó có nhận ra mã hóa utf-8 không? – Catalin

+0

Có thể máy chủ của bạn gửi tiêu đề kiểu nội dung. Tiêu đề HTTP được ưu tiên hơn thẻ meta HTML. – rik

+0

Khi bạn mở tệp thông minh với Notepad ++, bạn thấy gì ở phía dưới bên phải? Bạn sẽ thấy "ANSI as UTF-8". Nhân tiện, bạn có 'thoát 'không? Trong trường hợp đó, bạn nên cung cấp tham số thứ hai cho nó: '{$ var | escape: 'html': 'UTF-8'}' theo http://www.smarty.net/docsv2/en/language.modifier .escape.tpl –

Trả lời

0

Đặt này vào lúc bắt đầu của tập tin của bạn php và kiểm tra:

// utf-8

header ("pragma: no-cache"); tiêu đề ('Loại nội dung: văn bản/html; charset = utf-8');

// mbstring UTF8 mã hóa (không bắt buộc)

mb_detect_order (array ('UTF8', 'ASCII')); mb_internal_encoding ('UTF-8'); mb_http_output ('UTF-8'); mb_regex_encoding ('UTF-8');

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