2012-10-23 6 views
6

Tôi đang cố gắng tìm ra lý do tại sao các ký tự như thế này: & # x01F449; hiển thị như hộp trống. Chúng là các ký tự unicode và bộ ký tự là utf-8.UTF-8 ký tự đặc biệt không hiển thị

Có thể đó là vấn đề phông chữ không có glyph cho điều đó không? Bất kỳ ý tưởng?
chi tiết: trang Html, tôi sử dụng firefox 16.0.1, Windows 7 .. Trang như về bài đăng này tôi không thấy hình tượng này hoặc
Cảm ơn

+1

Vâng, bạn đã trả lời câu hỏi của mình trong chính câu hỏi đó.) – raina77ow

+0

Nó hoàn toàn phụ thuộc vào môi trường của bạn. Vui lòng cung cấp số lượng lớn các chi tiết bổ sung. – SLaks

+0

@ raina77ow ok, cảm ơn. Bạn có biết một số phông chữ có thể hiển thị nhân vật đó trên trang web hay không. Nó chỉ là html để sửa chữa - tôi có nghĩa là thêm font-family: SOME_UNICODE_FONT và nó sẽ được thực hiện. Nó phụ thuộc vào phông chữ trình duyệt web hoặc phông chữ hệ thống? –

Trả lời

6

Ký tự bạn có ở đó là Unicode Character 'WHITE RIGHT POINTING BACKHAND INDEX' (U+1F449). Trên trang đó, bạn có thể tìm thấy danh sách các phông chữ đã biết hỗ trợ ký tự đằng sau liên kết Fonts that support U+1F449.

Font
LastResort
Segoe UI Emoji
Segoe UI Symbol
Symbola

Cả những phông chữ là được sử dụng ở đây trên stackoverflow.com, do đó bạn cũng sẽ thấy một ô trống.

Nếu điều này xảy ra trên trang web của riêng bạn và bạn muốn sửa chữa, thì bạn cần cung cấp phông chữ hỗ trợ cùng với webapp bằng CSS @font-face hoặc trong trường hợp cụ thể này, có thể tốt hơn, hãy tìm một Thư viện biểu tượng dựa trên CSS chẳng hạn như Font Awesome. Các <i class="fa fa-hand-o-right"> đến rất gần với nhân vật này.

+0

Cảm ơn rất nhiều. Điều đó giải thích mọi thứ. Vì vậy, khi tôi muốn sử dụng nhân vật 'lạ' tôi nên luôn luôn suy nghĩ về những gì phông chữ được cài đặt trên người dùng cuối trình duyệt web phải không? –

+1

Bạn được chào đón. Đúng rồi. Tuy nhiên bạn cũng có thể cung cấp phông chữ của riêng bạn cùng với webapp bởi CSS '@ font-face'. – BalusC

+0

Cũng có liên quan ngoài các phông chữ một trang web được thiết kế để sử dụng là hành vi dự phòng phông chữ của trình duyệt và hệ điều hành. – bames53

1

Thiếu ký tự chữ thường sẽ được thay thế bằng phông chữ khác, và UTF-8 sẽ có thể hiển thị tất cả các ký tự unicode. Tôi nghi ngờ rằng việc mã hóa tệp của bạn (cách trình biên tập của bạn lưu), không khớp với khai báo trong các thẻ meta của trang HTML của bạn.

Bạn có thể kiểm tra trang của mình bằng số W3-checker này, nó có thể cung cấp cho bạn các gợi ý về sự cố trang của bạn.

EDIT:

Bạn là đúng, nó không phải là một vấn đề mã hóa, số lượng các nhân vật đều có một số lượng lớn như vậy, mà các phông chữ "bình thường" không hỗ trợ nó. Có lẽ bạn có thể sử dụng một trong những ☛ ☞ đó, nếu không bạn sẽ phải sử dụng phông chữ trên web và phông chữ có hỗ trợ unicode đầy đủ có thể khá lớn.

+0

martin, bạn có thể thấy glyph này trong bài viết của tôi không? hoặc bạn thấy hình vuông này với mã? Trang của tôi chứa bảng kê utf-8 charset. –

+0

@pawlakppp - Tôi thấy hình vuông, loại biểu tượng nào? – martinstoeckli

+0

nó phải là tay trỏ sang phải. Vì vậy, bạn thấy SO là chắc chắn utf-8 tương thích và chúng tôi không thấy biểu tượng này –

4

Ký tự U + 1F449 đã được thêm vào Unicode trong phiên bản 6 năm 2010 và thường mất khoảng mười năm kể từ khi chấp nhận ký tự vào Unicode trước khi được hỗ trợ rộng rãi trong phông chữ.

Một vài phông chữ hiện có chứa Symbola và Biểu tượng giao diện người dùng Segoe. Nếu bạn đã cài đặt chúng, có thể bạn sẽ thấy nó; nếu không thì không. Segoe UI Symbol được vận chuyển với Windows 8 và rõ ràng với (ít nhất một số biến thể của) Windows 7, mặc dù phiên bản Windows 7 có thể bị giới hạn - một update có sẵn từ Microsoft. Symbola là phông chữ miễn phí, do đó bạn có thể sử dụng nguyên tắc này làm phông chữ có thể tải xuống (qua @font-face), nhưng kích thước tệp của nó khá lớn.

Trình duyệt web được cho là sử dụng phông chữ dự phòng, nếu phông chữ được chỉ định cho phần tử không chứa ký tự đại diện cho một số ký tự trong nội dung.Firefox thường thực hiện ý chí này, IE không, đặc biệt là trong các phiên bản cũ, vì vậy nếu bạn sử dụng ký tự trên một trang web, tốt nhất nên bọc trong một phần tử của riêng nó (thường là span được sử dụng cho mục đích này) và thiết lập như sau vào nó trong CSS:

font-family: Segoe UI Symbol, Symbola; 

Nhưng điều này sẽ như vậy (không @font-face) chỉ làm việc cho người sử dụng máy tính có chứa một trong những phông chữ.

+0

Cảm ơn bạn đã giải thích, tôi đã thử nó với font-face, sau đó tôi cài đặt nó và sử dụng nó mà không có font-face, và tất cả làm việc như bạn nói;) –