cuốn sách gpt4 ai đã làm

php - Tại sao các ký tự ascii mở rộng (â, é, v.v.) này được thay thế bằng ký tự này?

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-10-31 23:51:50 26 4
mua khóa gpt4 Nike

Tại sao các ký tự ascii mở rộng (â, é, v.v.) được thay thế bằng tính cách?

Tôi đã đính kèm một hình ảnh...nhưng tôi đang sử dụng PHP để trích xuất dữ liệu từ MySQL và nó có các ký tự mở rộng ở một số chỗ...Tôi đang sử dụng phông chữ Arial.

Bạn có thể xem ảnh chụp màn hình ở đây:http://img269.imageshack.us/i/funnychar.png/

Sau gợi ý, nó vẫn xảy ra, đây là những gì tôi đã làm:

Sau khi thêm dòng đó, firefox của tôi (Xem -> Mã hóa) được đặt thành UTF-8, tuy nhiên, văn bản bên trong thẻ tùy chọn vẫn hiển thị các ký tự hài hước thay vì các ký tự có dấu thực tế. Tôi nên tìm gì bây giờ?

gia hạn:Tôi có những điều sau đây trong chương trình PHP mang lại cho tôi những điều đó tính cách...

ini_set( 'default_charset', 'UTF-8' );

Sau khi tạo đối tượng zend db, tôi thiết lập truy vấn sau:

$db->query("THIẾT LẬP TÊN utf8;");

Tôi đã thay đổi tất cả các bảng thành UTF-8 và chèn lại tất cả dữ liệu (lãng phí thời gian) vì nó chẳng giúp ích gì cả. Trước đây nó là latin1.

Ngoài ra còn có báo cáo TÌNH TRẠNG:

Kết nối: Localhost qua ổ cắm UNIX
Bộ ký tự máy chủ: latin1
Bộ ký tự Db: latin1
Bộ ký tự khách hàng: utf8
Bộ ký tự kết nối: utf8
Ổ cắm UNIX: /var/run/mysqld/mysqld.sock
Thời gian hoạt động: 4 ngày 20 giờ 59 phút 41 giây

Nhìn vào mã nguồn của trang là tôi hiểu rồi

Được rồi - Cập nhật mới -Tôi đã thay đổi mọi thứ trong PHP và HTML thành:

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

Bây giờ nó hoạt động, tại sao? Làm cách nào tôi có thể chuyển đổi tất cả sang UTF-8?

câu trả lời hay nhất

Đây là những gì trình duyệt thực hiện khi nó không biết mã hóa được sử dụng cho một ký tự. Đảm bảo chỉ định loại mã hóa của văn bản được gửi tới ứng dụng khách trong meta tiêu đề hoặc thẻ.

Trong HTML:


Trong PHP (trước khi bất kỳ thứ gì khác được gửi tới máy khách):

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

Tôi giả sử bạn muốn mã hóa UTF-8. Nếu trang web của bạn sử dụng mã hóa văn bản khác, bạn nên thay thế UTF-8 bằng mã hóa bạn đang sử dụng.

Một điều cần lưu ý khi sử dụng HTML để chỉ định mã hóa là khi trình duyệt nhìn thấy Loại nội dung Sau đó, trang sẽ bắt đầu hiển thị lại. thẻ meta, vì vậy bạn nên bao gồm Theo dõi chặt chẽ <đầu> Thẻ sau khi thêm đánh dấu vào trang của bạn để trình duyệt không thực hiện nhiều quá trình xử lý hơn mức cần thiết.

Một bộ ký tự phổ biến khác là "iso-8859-1" (tiếng Latin cơ bản), bạn có thể muốn sử dụng thay vì UTF-8. Bạn có thể tìm hiểu từ bài viết này về mã hóa ký tự và web Tìm thêm chi tiết trong bài viết tuyệt vời này. .Bạn cũng có thể nhận được thông tin chi tiết danh sách mã hóa ký tự ở đâyNếu bạn cần một loại cụ thể.


Nếu vẫn thất bại, một khả năng khác (hiếm) là máy tính của bạn có thể không cài đặt phông chữ với các ký tự cần thiết để hiển thị trang. tôi đã cố gắng lặp lại kết quả của bạn trên máy chủ của riêng tôiKhông may mắn, có lẽ vì tôi đã cài đặt quá nhiều phông chữ trên máy nên trình duyệt luôn có thể thay thế các ký tự không có sẵn trong phông chữ này bằng phông chữ khác.

Tôi đã nhận thấy khi điều tra sâu hơn rằng các ký tự Unicode có thể được hiển thị bất ngờ nếu văn bản được gửi có mã hóa khác với mã hóa mà trình duyệt báo cáo. Để giải quyết vấn đề này tôi đã sử dụng Biểu diễn thực thể ký tự HTMLký tự đặc biệt, vì vậy Mộttrở nên âTrong HTML của tôi và étrở nên é .Sau khi thực hiện việc này, các ký tự của tôi hiển thị chính xác bất kể tôi báo cáo bằng mã hóa nào.

Rõ ràng, bạn không muốn sửa đổi cơ sở dữ liệu để sử dụng các ký tự Unicode được mã hóa HTML. Nếu bạn phải làm điều này, lựa chọn tốt nhất của bạn là sử dụng hàm PHP htmlentities() .Bạn nên sử dụng chức năng này trên bất kỳ văn bản điều khiển dữ liệu nào mà bạn muốn chứa các ký tự Unicode. Việc này có thể gây khó chịu nhưng đây là biện pháp cuối cùng để buộc các ký tự Unicode hoạt động nếu việc chỉ định mã hóa không có tác dụng.

Về php - tại sao các ký tự ascii mở rộng (â, é, v.v.) này được thay thế bằng các ký tự ? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/1028449/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress