Dlaczego Chrome w systemie Windows 7 nie wyświetla mi niektórych znaków Unicode?

21

To pytanie Apple zawiera tekst

co to za klucz ⎋

Który wygląda mi tak w Google Chrome:

wprowadź opis zdjęcia tutaj

Dlaczego tego znaku Unicode lub innych podobnych nie można wyświetlić w przeglądarce Google Chrome w systemie Windows 7?

Michael Pryor
źródło
Dla mnie wygląda to jak pudło ... W każdym razie podwójne posłanie jest niezadowolone.
soandos
3
@soandos, o jakim innym wpisie mówisz? nie ma też być pudełkiem. dlatego zadaję pytanie. Ktoś zadał pytanie na askdifferent i wpisał tam znak Unicode, ale w mojej instalacji Chrome widzę ogólne okno.
Michael Pryor
3
Tak jak ja ... Wygląda na to, że nie jest to problem z instalacją chrome, dotyczy wszystkich chromów. FF dobrze to rozpoznaje. Chrome nie może nawet rozpoznać go jako charachtera Unicode (nie sądzę).
soandos
Co ciekawe, Chromium na Ubuntu ma się dobrze.
Kibbee,
@soandos Działa dla mnie dobrze z Google Chrome (12.0.742.112) na Ubuntu 11.04 (Natty).
Mike Spross,

Odpowiedzi:

20

Zakładam, że to problem z zastępowaniem czcionek.

Przeglądarki napotykają problem: „Wybrany glif nie ma określonej czcionki”. Istnieją dwa kierunki, z których możesz przejść: możesz albo wyciągnąć ekwiwalentny glif z innej czcionki (która często wygląda na zepsutą, ale może nie być jasne, dlaczego użytkownik) lub po prostu wyświetlić symbol zastępczy nie znaleziony znak (który zawsze będzie wyglądać na zepsuty, ale przynajmniej oczywiście tak).

Wyobrażam sobie, że Firefox i Opera rozpoznają, że żądany glif jest symbolem, który można bezpiecznie pobrać z innej czcionki, podczas gdy pozostałe przeglądarki są konserwatywne i po prostu pokazują glif „Uh ... dunno”.

Charles Miller
źródło
Uważam, że zarówno Chrome, jak i Safari używają Windows GDI do renderowania tekstu w systemie Windows. IE9 używa DirectWrite, który w tym przypadku wydaje się mieć takie samo zachowanie jak GDI.
Craig Williams
Ciekawe: ten sam wynik uzyskasz, jeśli wkleisz go w pasku adresu.
xpda,
@xpda masz rację; znak działa w pasku adresu i treści w przeglądarce Firefox i nie działa w żadnym miejscu w Chrome. Fascynujący.
Jeff Atwood,
5
Brzmi dobrze: Chrome i Firefox używają Uniscribe do renderowania tekstu w przeglądarce, a Uniscribe po prostu zwraca kod błędu do aplikacji wywołującej, gdy określonego znaku nie można znaleźć w bieżącej czcionce. To aplikacja decyduje, czy Uniscribe powinien użyć zastępczej czcionki do znalezienia podstawienia, czy też po prostu renderuje glif pola. Chrome jest jedną z przeglądarek, która mówi „Cokolwiek, nie obchodzi mnie to. Box jest w porządku”.
Mike Spross,
11

Ciekawy. To nie tylko Chrome - możesz zapytać, dlaczego którakolwiek z poniższych przeglądarek nie może wyświetlić go w systemie Windows 7:

wprowadź opis zdjęcia tutaj

Od góry do dołu:

  • Firefox (y)
  • IE9 (n)
  • Chrom (n)
  • Opera (y)
  • Safari (n)

Dlatego Firefox i Opera mogą wyświetlać ten znak Unicode w Windows 7, ale inne przeglądarki nie mogą.

co to za klucz ⎋

Jeff Atwood
źródło
Co warte jest tego, kluczem jest „ESC” w Mac OS X.
Martin Marconcini,
@jjn to częściowa odpowiedź, która jest na ogół dozwolona
Jeff Atwood,
Znakomity. (Komentarz wycofany.)
jjnguy,
Jakie są podobne przeglądarki w dzisiejszych czasach ... :)
balexandre
2
Chrome 13.0.782.107/Linux: ok
Arnaud Le Blanc
6

Pytanie zadające „Dlaczego ten znak Unicode, [...] jest nie do wyświetlenia w Google Chrome na Windows 7?” jest

Ten konkretny znak jest po prostu kodem Unicode, który jest dowolną liczbą. Istnieje wiele znaków kodowych Unicode, które nie mają „oficjalnego” symbolu. Nawet jeśli mają symbol, niekoniecznie jest tak, że twoja czcionka ma symbol tego punktu kodowego. Jeśli wybierzesz inną czcionkę, możesz skończyć z innym symbolem.

Spojrzałem na CSS strony i pokazuje on ten znak wyświetlany w Arial (plus kilka innych czcionek, które nie mają znaczenia). Windows jest dostarczany z Arial, więc zawsze powinien najpierw pobrać tę czcionkę. Wygląda na to, że Arial nie ma symbolu dla tego kodu Unicode. Za każdym razem, gdy nie masz glifu dla punktu kodowego, wstawia on jakąś formę pola wskazującego, że nie ma żadnego glifu (jak wskazali inni).

Większe pytanie dotyczy tego, co dokładnie robi Firefox lub inne przeglądarki, tam gdzie działa w systemie Windows. Spojrzałem na inne czcionki wymienione w CSS (myślałem, że może się to cofnąć przy następnej czcionce CSS), ale nie mają też glifów dla tego kodu. Jedną z możliwości jest to, że Firefox faktycznie ma własne czcionki.

Zagłębiając się w Firefoksa, zauważyłem tutaj czcionki dla symboli matematycznych: „C: \ Program Files (x86) \ Mozilla Firefox \ res \ fonts”. Być może stąd pochodzi.

Chris Dail
źródło
3

Wiem, że to trochę stare pytanie, ale dla tych, którzy dopiero zaczynają Google, mam rozwiązanie, które działało w 2013 roku. Po pierwsze, musisz potwierdzić, że masz zainstalowaną czcionkę na komputerze z systemem Windows 7, która może renderować czcionka:

http://www.fileformat.info/info/unicode/char/238b/index.htm

Zakładając, że co najmniej jedna czcionka na lokalnej liście czcionek renderuje to:

http://www.fileformat.info/info/unicode/font/fontlist.htm?text=%E2%8E%8B+-+Unicode+Character+%27BROKEN+CIRCLE+WITH+NORTHWEST+ARROW%27+%28U%2B238B % 29

Jeśli nie, zainstaluj kilka czcionek „catch all” Unicode: Code2000 i Symbola

Gdy będziesz mieć czcionkę, która wyrenderuje symbol, możesz wypróbować stronę testową przeglądarki:

http://www.fileformat.info/info/unicode/char/238b/browsertest.htm

Chrome 28.0.1500.95 (i prawdopodobnie wszystkie najnowsze wydania) dokonuje podstawienia czcionek ... głównie.

Z jakiegokolwiek powodu, nawet w przypadku czcionek, które renderują poprawnie U + 1F3C1 , Chrome 28.0 nie wyświetla tego znaku Unicode: 🏁. Firefox działa pięknie. Domyśl.

  • Dave
ViperGeek
źródło
Zmiana czcionki powyżej BMP nadal podzielone w Chrome Windows tylko : code.google.com/p/chromium/issues/detail?id=111382
Fizz
2

Zgodnie z Absolutnym minimum Każdy twórca oprogramowania absolutnie, pozytywnie musi wiedzieć o Unicode i zestawach znaków (bez wymówek!) Autorstwa Joela Spolsky'ego : „Jeśli nie ma odpowiednika punktu kodu Unicode, który próbujesz reprezentować w kodowaniu, którego próbujesz aby to przedstawić, zwykle pojawia się mały znak zapytania:? lub, jeśli jesteś naprawdę dobry, pudełko . ”

Używam Chromium 13.0.782.112 na Archlinuxie, a moje domyślne kodowanie to en_US.UTF-8 - charcter wyświetla się dobrze na pierwotnie połączonej stronie.

wulfgarpro
źródło
2
to dobrze, ale nie sądzę, że pytanie dotyczyło pudełka, ale dlaczego niektóre przeglądarki mogą wyświetlać tę konkretną postać, a inne nie.
Jeff Atwood,
@Jeff Atwood, zgodził się - jeśli w ogóle, moja odpowiedź dostarcza bardziej pomocnych dowodów dotyczących kwestii typograficznej; czytaj tutaj . Nie mogę powiedzieć domyślnej czcionki, ponieważ nie jestem przed komputerem.
wulfgarpro,
0

Rzeczywista odpowiedź: Dzieje się tak, ponieważ w Chrome występuje błąd, który uniemożliwia renderowanie czcionek Unicode w systemie Windows 7 (i nowszych?).

Problem jest tutaj, ze wszystkimi krwawymi szczegółami: https://crbug.com/42984 (oznacz go gwiazdką, a może ktoś to zauważy?)

Więcej analiz i możliwe obejście można znaleźć tutaj: http://gschoppe.com/uncategorized/fixing-unicode-support-in-google-chrome/ .

Noyo
źródło
0

Firefox 45.0 na moim systemie GNU / Linux LFS 7.9 nie wyświetlał wspomnianego glifu Unicode, nie wyświetlał też innych glifów, takich jak grecki itp.

Jednak po pobraniu Symbolaczcionki z tego miejsca, a następnie:

~$ unzip Downloads/symbola.zip -d Downloads
~$ mv Downloads/Symbola/Symbola_hint.ttf .fonts
~$ fc-cache

Firefox pokazuje teraz dany glif, a także wyświetla inne glify.

użytkownik3405291
źródło