Tại sao biểu tượng cảm xúc giống như xuất hiện khi tôi sử dụng Safari, nhưng không phải Chrome?


29

Tại sao biểu tượng cảm xúc giống như xuất hiện khi tôi sử dụng Safari, nhưng không phải Chrome trên cùng MacBook chạy Lion? Cả hai trình duyệt đều sử dụng WebKit và tôi tưởng tượng hỗ trợ phông chữ đến từ HĐH chứ không phải ứng dụng.

Đối với mục đích tham khảo, đây là trang được hiển thị trong Chrome 17.0.963.56:

Chrome 17.0.963.56

Và đây là trang được hiển thị trong Safari 5.1.3 (7534.53.10):

Safari 5.1.3 (7534.53.10)


9
Tôi đang xem cái này trong Chrome và tôi không thấy câu hỏi hay tiêu đề, nhưng tôi làm nhìn thấy nó trong tiêu đề tab trên cửa sổ.
CajunLuke

Tôi hiếm khi di chuột qua các tab để xem tiêu đề toàn trang, nhưng bạn nói đúng, nó thực sự đúng như vậy. Điều đó rất đáng ngạc nhiên.
Jason Salaz

Có thể là các plugin Chrome vào bảng ký tự của riêng nó, có thể là một số phiên bản lai giữa bản gốc và bản quyền. Và họ chỉ cần cập nhật nó cho OS X. Nhưng tôi biết rằng biểu tượng cảm xúc không chỉ là vấn đề của loại phông chữ (ví dụ bạn không thể chuyển biểu tượng cảm xúc sang SL bằng cách chỉ cài đặt phông chữ tương ứng). Vì vậy, có nhiều thứ cho họ hơn là chỉ đọc một loại phông chữ mới. Tôi đã gửi một lỗi với Google. Hoặc yêu cầu hỗ trợ đầy đủ.

14
Vì khách truy cập với Chrome sẽ gặp khó khăn khi đọc tiêu đề, tôi bỏ phiếu thay đổi tiêu đề thành "Làm cách nào để tôi tạo ra các bản nhạc trên Google Chrome?"
Gerry

@cksum Tôi hoàn nguyên tiêu đề vì nó trở thành một thông tin thích hợp trong câu hỏi.
Jason Salaz

Câu trả lời:


27

Sự khác biệt là các công cụ kết xuất cho các cửa sổ trình duyệt.

Chúng tôi biết Safari biểu hiện bộ ký tự khác với Chrome. Nhưng các thành phần UI của Window (các tab trong Chrome) vẫn ổn. Đó là manh mối lớn nhất của chúng tôi.

Các yếu tố UI cửa sổ có khả năng (nhấn mạnh vào khả năng, tôi có thể không chính xác ở đây) tất cả đều được HĐH hiển thị. Vì vậy, họ nhận được điều trị mở rộng biểu tượng cảm xúc cấp hệ điều hành đầy đủ.

Nhưng những gì xảy ra trong một cửa sổ trình duyệt web đều phụ thuộc rất nhiều vào trình duyệt. Các công cụ kết xuất là một phần lớn của nước sốt bí mật của mỗi trình duyệt.

Cả Safari và Chrome đều sử dụng WebKit, nhưng những điểm tương đồng giữa các phiên bản WebKit mà chúng sử dụng dừng lại ở đâu đó xung quanh tên của công cụ. Cả hai đều là dĩa từ phiên bản chính và cả hai đều được tùy chỉnh rất nhiều để cải thiện hiệu suất theo cách mà mỗi nhóm phát triển trình duyệt cho là có ý nghĩa đối với người dùng cuối của họ.

@JasonSalaz đã tìm thấy một lỗi lớn trong cơ sở dữ liệu lỗi của Chrome cung cấp cho chúng tôi manh mối cuối cùng về các nhánh của WebKit: http://code.google.com.vn/p/chromium/issues/detail?id=90177 - lỗi đó đang nói về sự khác biệt giữa ngã ba trong Chrome và dòng chính của WebKit từ dự án nguồn mở. Có những khác biệt về kết xuất trong dòng chính vẫn chưa được đưa vào phiên bản Chrome đang sử dụng. Và có vẻ như họ có ý định hợp nhất những thay đổi tại một số điểm.

Cập nhật: Paul Ailen có một bài đăng blog tuyệt vời về cách WebKit khác nhau cho tất cả các trình duyệt hiện đang sử dụng nó . Nếu bạn thực sự muốn hiểu môi trường WebKit đa dạng như thế nào, thì đây là một bài đọc tuyệt vời.


Argh. Nên đã chụp một số ảnh chụp màn hình. Ồ tốt ...
Ian C.

Hỗ trợ Emoji theo dõi vé lỗi Chromium là cái này: crorms.com/62435 Một trong những bạn liên kết đến là một bản sao.
Mathias Bynens

Đối với bản ghi: Nó vẫn bị hỏng trong Chrome 20.0.1132.57.

Thật tuyệt vời, theo Nhận xét 17 trong báo cáo lỗi, vấn đề này đã bị đóng. Nếu bất cứ ai muốn khiếu nại một lần nữa, bạn cần phải báo cáo lỗi mới.
gentmatt

1
Nó hoạt động ngay từ Chrome 41!
yincrash

12

Bạn có thể sử dụng tiện ích mở rộng của Chrome Chromoji . Đó là một cách giải quyết sẽ thay thế biểu tượng cảm xúc bằng hình ảnh nhúng trong các trang web.


2
Hoàn toàn hoạt động, đối với Twitter ít nhất, không xóa câu trả lời.
MarcusJ

2

Vấn đề là trình duyệt của bạn đang sử dụng mã hóa ký tự khác với tài liệu bạn đang xem.

Vậy làm thế nào để trình duyệt biết mã hóa ký tự sẽ sử dụng?

  1. Nó có thể được chỉ định trong HTTP bằng cách sử dụng Content-Type tiêu đề.
  2. Nó có thể được chỉ định cho tài liệu HTML bằng cách sử dụng meta thành phần.
  3. Nó có thể được chỉ định cho một phần tử HTML cụ thể bằng cách sử dụng charset thuộc tính.

Nếu không có cái nào trong số này được chỉ định, thì các trình duyệt khác nhau sẽ sử dụng các kỹ thuật khác nhau để đoán đúng mã hóa ký tự. Một số sử dụng heuristic. Một số cho phép người dùng chỉ định mã hóa ký tự. Một số chọn mã hóa ký tự mặc định của hệ điều hành.

Nếu không có cái nào trong số này ra, bạn sẽ nhận được tiếng vô nghĩa, còn được gọi là mojibake.

Vì vậy, để trả lời câu hỏi của bạn trực tiếp: Safari và Chrome đang thử nhiều thứ khác nhau để tìm mã hóa ký tự phù hợp.


3
Xem - & gt; Mã hóa văn bản trong Safari cho biết 'Mặc định'. Xem - & gt; Mã hóa trong Chrome cho biết 'UTF-8'. Safari prefs cho biết mã hóa mặc định là Western (ISO Latin 1). Nếu tôi thay đổi mã hóa trong Chrome thành Western (ISO-8859-1), Western (Windows-1252) hoặc Western (Macintosh), tôi vẫn không thấy biểu tượng cảm xúc chính xác, nhưng tôi thấy vô nghĩa thay vì khoảng trống. Tôi không nghĩ nó đơn giản như mã hóa ký tự. Tôi nghi ngờ có sự khác biệt kết xuất. (tiếp tục ...)
Ian C.

1
.
Ian C.

1
@IanC. đó có lẽ là câu trả lời xứng đáng nếu bạn mở rộng trên đó chỉ là một bit hơn. Chrome sử dụng WebKit, nhưng mặt khác, không phải là một trong các lớp ObjC / Ca cao vốn hỗ trợ biểu tượng cảm xúc. Đó là sau tất cả tính năng số 1 của Chrome, nhanh chóng chỉ đạt được với một giải pháp tùy chỉnh. Vì vậy, Chrome sẽ phải viết hỗ trợ rõ ràng cho biểu tượng cảm xúc hoặc ngừng làm điều khiến mọi người thích chúng hơn Safari và các trình duyệt khác. (Đoán xem ai có nhiều khả năng?)
Jason Salaz


@JasonSalaz bắt tốt với báo cáo lỗi đó. Đó là mảnh ghép cuối cùng. Viết lên câu trả lời!
Ian C.

0

Chuyển đến thanh menu Chrome, nhấp vào "Công cụ khác" → "Mã hóa" và chọn định dạng mã hóa mới. Tôi đang sử dụng "Unicode UTF-8", nó dường như hoạt động với tôi.


-1

https://code.google.com.vn/p/chromium/issues/detail?id=62435 được đánh dấu cố định gần đây; bắt đầu từ phiên bản 41 biểu tượng cảm xúc sẽ hiển thị tốt trong Chrome.


1
Mặc dù hữu ích, đây không thực sự là một câu trả lời. Nó không giải thích tại sao nó đã xảy ra Điều này tốt hơn là để lại một bình luận IMO.
Ian C.

Nó đã xảy ra vì hỗ trợ cho biểu tượng cảm xúc đã không được thực hiện. Vì vậy, câu hỏi sẽ không có ý nghĩa khi m41 ổn định.
thakis

-9

Biểu tượng là một nhân vật được tạo bởi Apple. Safari sử dụng bộ ký tự riêng của nó.


5
Trên thực tế, "đống poo" là một ký tự tiêu chuẩn quốc tế trong Unicode - ký hiệu 1F4A9 và thậm chí không cụ thể của Apple chứ đừng nói gì đến một cái gì đó đặc biệt đối với Safari. Xem Mục nhập Wikipedia trên Emoji PDF này để biết chi tiết.
bmike

2
Trong khi nhân vật không phải là duy nhất của Apple, màu sắc là. Tôi không biết về bất kỳ phông chữ màu nào khác tồn tại cho đến nay và tôi nghĩ Apple đã tạo ra tiêu chuẩn riêng để làm điều đó (một bảng sbix độc quyền). Các ứng dụng khác nhau sẽ không nhận ra phông chữ này, nhưng sẽ hiển thị từ phông chữ Symbola đen / trắng bình thường.
Tom Gewecke

1
PS Bởi vì thực sự có một cái gì đó "độc nhất của Apple" về phông chữ này, tôi nghĩ rằng câu trả lời này không quá xa như đánh giá trừ có thể gợi ý.
Tom Gewecke

@TomGewecke tốt, "Safari sử dụng bộ ký tự của riêng nó" đơn giản là sai. Vì vậy, tôi nghĩ rằng xếp hạng trừ là xứng đáng.
jbg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.