Mengapa emoji suka 💩 muncul ketika saya menggunakan Safari, tetapi bukan Chrome?

30

Mengapa emoji suka 💩 muncul ketika saya menggunakan Safari, tetapi tidak Chrome di MacBook yang sama dengan Lion? Kedua browser menggunakan WebKit, dan saya membayangkan dukungan font berasal dari OS, bukan aplikasi.

Untuk tujuan referensi, ini adalah laman yang dirender di Chrome 17.0.963.56:

Chrome 17.0.963.56

Dan ini adalah halaman yang diberikan dalam Safari 5.1.3 (7534.53.10):

Safari 5.1.3 (7534.53.10)

Daniel
sumber
9
Saya melihat ini di Chrome dan saya tidak melihat 💩 dalam pertanyaan atau judul, tapi saya lakukan melihatnya dalam judul tab di atas jendela.
CajunLuke
Saya jarang pernah melayang di atas tab untuk melihat judul halaman penuh, tetapi Anda benar, itu memang benar. Itu sangat mengejutkan.
Jason Salaz
Mungkin saja plug-in Chrome ke palet karakternya sendiri, yang bisa berupa versi hybrid antara yang asli dan yang eksklusif. Dan mereka hanya perlu memperbaruinya untuk OS X. Tapi saya tahu bahwa emoji bukan hanya masalah jenis font (Anda tidak dapat mem-port emoji ke SL misalnya dengan hanya menginstal font masing-masing). Jadi ada lebih banyak untuk mereka daripada hanya membaca jenis font baru. Saya akan mengajukan bug ke Google. Atau minta dukungan penuh.
14
Karena pengunjung dengan Chrome akan kesulitan membaca judul, saya memilih untuk mengubah judul menjadi "Bagaimana cara menghasilkan turds di Google Chrome?"
Gerry
@ cksum Saya mengembalikan judul karena itu menjadi informasi yang relevan dalam pertanyaan.
Jason Salaz

Jawaban:

27

Perbedaannya adalah mesin rendering untuk windows browser.

Kami tahu Safari membuat set karakter berbeda dari Chrome. Tetapi elemen Window UI (tab di Chrome) tidak apa-apa. Itu petunjuk terbesar kami.

Elemen-elemen UI jendela cenderung (penekanan pada kemungkinan, saya mungkin tidak benar di sini) semua yang diberikan oleh OS. Jadi mereka mendapatkan perawatan ekspansi emoji tingkat OS penuh.

Tetapi apa yang terjadi di dalam jendela browser web semuanya sangat tergantung pada browser. Mesin rendering adalah bagian besar dari saus rahasia masing-masing browser.

Baik Safari dan Chrome menggunakan WebKit, tetapi kesamaan antara contoh WebKit yang mereka gunakan berhenti di suatu tempat di sekitar nama mesin. Keduanya merupakan fork dari versi utama dan keduanya sangat disesuaikan untuk meningkatkan kinerja dengan cara yang menurut setiap tim pengembang browser bermakna bagi pengguna akhir mereka.

@JasonSalaz menemukan bug hebat di basis data bug Chrome yang memberi kita petunjuk akhir bahwa itu tergantung pada garpu WebKit: http://code.google.com/p/chromium/issues/detail?id=90177 - bug itu adalah berbicara tentang perbedaan antara garpu di Chrome dan garis utama WebKit dari proyek open source. Ada perbedaan render pada jalur utama yang belum masuk ke versi yang digunakan Chrome. Dan sepertinya mereka berniat untuk menggabungkan perubahan di beberapa titik.

Pembaruan: Paul Irish memiliki posting blog yang hebat tentang perbedaan WebKit untuk semua browser yang saat ini menggunakannya . Jika Anda benar-benar ingin memahami betapa beragamnya lingkungan WebKit, ini adalah bacaan yang bagus.

Ian C.
sumber
Argh. Seharusnya meraih beberapa tangkapan layar. Oh well ...
Ian C.
Dukungan Chromebook bug tracking Emoji adalah ini: crbug.com/62435 Yang Anda tautkan adalah duplikat.
Mathias Bynens
Sebagai catatan: Masih rusak di Chrome 20.0.1132.57.
Oh, bagus, menurut Komentar 17 dalam laporan bug masalah ini telah ditutup. Jika ada yang ingin mengeluh lagi, Anda perlu mengajukan laporan bug baru.
Gentmatt
1
Ini sekarang berfungsi pada Chrome 41! 🚀🚀🚀🚀🚀🚀🚀
yincrash
12

Anda dapat menggunakan Chromoji ekstensi Chrome . Ini solusi yang akan menggantikan emoji dengan gambar yang disematkan di halaman web.

Steffi
sumber
2
Benar-benar berfungsi, setidaknya untuk Twitter, jangan hapus jawabannya.
MarcusJ
2

Masalahnya adalah peramban Anda menggunakan penyandian karakter yang berbeda dari penyandian dokumen yang Anda lihat.

Jadi, bagaimana browser dapat mengetahui pengkodean karakter mana yang digunakan?

  1. Itu dapat ditentukan dalam HTTP menggunakan Content-Typeheader.
  2. Itu dapat ditentukan untuk dokumen HTML menggunakan metaelemen.
  3. Itu dapat ditentukan untuk elemen HTML tertentu menggunakan charsetatribut.

Jika tidak ada yang ditentukan, maka browser yang berbeda menggunakan teknik yang berbeda untuk menebak pada pengkodean karakter yang tepat. Beberapa menggunakan heuristik. Beberapa memungkinkan pengguna untuk menentukan pengkodean karakter. Beberapa memilih pengkodean karakter default dari sistem operasi.

Jika tidak ada yang berhasil, Anda mendapatkan omong kosong, juga dikenal sebagai mojibake.

Jadi untuk menjawab pertanyaan Anda secara langsung: Safari dan Chrome sedang mencoba berbagai hal untuk menemukan pengkodean karakter yang tepat.

james.garriss
sumber
3
Lihat -> Pengkodean Teks di Safari mengatakan 'Default'. Lihat -> Pengkodean di Chrome mengatakan 'UTF-8'. Safari mengatakan bahwa penyandian default adalah Barat (ISO Latin 1). Jika saya mengubah penyandian di Chrome ke Western (ISO-8859-1), Western (Windows-1252) atau Western (Macintosh) saya masih tidak melihat emoji yang benar, tetapi saya melihat omong kosong alih-alih ruang kosong. Saya tidak berpikir itu sesederhana pengkodean karakter. Saya menduga ada perbedaan render. (lanjutan ...)
Ian C.
1
(lanjutan dari atas) Itu akan menjelaskan bilah judul yang menunjukkan emoji (teks kemungkinan sedang dirender oleh mesin rendering OS X karena itu adalah elemen grafis pada Window) dan badan halaman sedang dirender oleh mesin rendering Chrome sendiri.
Ian C.
1
@IanC. itu mungkin layak untuk dijawab jika Anda mengembangkannya sedikit lebih banyak. Chrome menggunakan WebKit, tetapi sebaliknya bukan salah satu dari kelas ObjC / Cocoa yang secara native mendukung emoji. Itu setelah semua fitur Chrome # 1, cepat jahat yang selalu dicapai dengan solusi khusus. Jadi, Chrome harus menulis dukungan untuk emoji secara eksplisit, atau berhenti melakukan hal yang membuat orang lebih menyukainya daripada Safari dan browser lain. (Coba tebak mana yang lebih mungkin?)
Jason Salaz
1
Tersandung pada ini: code.google.com/p/chromium/issues/detail?id=90177
Jason Salaz
@JasonSalaz tangkapan bagus dengan laporan bug itu. Itu bagian terakhir. Menulis jawabannya!
Ian C.
0

Buka bilah menu Chrome, klik pada "Alat Lainnya" → "Pengkodean" dan pilih format pengodean baru. Saya menggunakan "Unicode UTF-8", sepertinya berfungsi untuk saya.

Blake Edmunds
sumber
-1

https://code.google.com/p/chromium/issues/detail?id=62435 ditandai telah diperbaiki baru-baru ini; mulai versi 41 emoji akan ditampilkan dengan baik di Chrome.

thakis
sumber
1
Meskipun bermanfaat, ini sebenarnya bukan jawaban. Itu tidak menjelaskan mengapa itu terjadi. Ini lebih baik dibiarkan sebagai komentar IMO.
Ian C.
Itu terjadi karena dukungan untuk emoji tidak diimplementasikan. Jadi pertanyaannya tidak akan masuk akal begitu m41 aktif.
thakis
-9

Simbol adalah karakter yang dibuat oleh Apple. Safari menggunakan rangkaian karakternya sendiri.

Josh
sumber
5
Sebenarnya "tumpukan kotoran" adalah karakter standar internasional di Unicode - simbol 1F4A9 dan bahkan tidak khusus Apple apalagi sesuatu yang istimewa untuk Safari. Lihat entri Wikipedia di Emoji dan PDF ini untuk detailnya.
bmike
2
Meskipun karakternya tidak unik untuk Apple, warnanya adalah. Saya tidak tahu ada font warna lain yang ada sejauh ini dan saya pikir Apple menciptakan standar sendiri untuk melakukannya (tabel sbix eksklusif). Berbagai aplikasi tidak akan mengenali font ini, tetapi akan ditampilkan dari font hitam putih yang biasa Symbola.
Tom Gewecke
1
PS Karena memang ada sesuatu yang "Apple unik" tentang font ini, saya pikir jawaban ini tidak sejauh yang disarankan rating minus.
Tom Gewecke
@ TomGewecke dengan baik, "Safari menggunakan set karakternya sendiri" benar-benar salah. Jadi saya pikir peringkat minusnya pantas.
jbg