2015-05-26 23 views
6

Tôi đã cố gắng loại bỏ tất cả các ký tự biểu tượng cảm xúc ra khỏi một chuỗi (như một chất khử trùng). Nhưng tôi không thể tìm thấy một bộ giá trị biểu tượng cảm xúc hoàn chỉnh.Phạm vi giá trị biểu tượng cảm xúc

Tập hợp đầy đủ các giá trị UTF16 của biểu tượng cảm xúc là gì?

+0

[unicode.org] (http://www.unicode.org/emoji/charts/full-emoji-list.html) là hướng dẫn dứt khoát cho mọi thứ liên quan đến UTF. – usr2564301

+1

Và nếu bạn đọc [Câu hỏi thường gặp về biểu tượng cảm xúc] (http://unicode.org/faq/emoji_dingbats.html), nó nói: "* Biểu tượng cảm xúc được trải rộng qua nhiều khối Unicode *", hiển nhiên trong [full biểu đồ cảm xúc] (http://www.unicode.org/emoji/charts/full-emoji-list.html), vì vậy bạn không thể sử dụng một kiểm tra phạm vi đơn lẻ để lọc chúng ra, bạn sẽ phải kiểm tra nhiều dải ô và thậm chí cả các giá trị cụ thể. –

+0

Cảm ơn, Jongware và Remy. Nhưng tôi chỉ tò mò rằng có một danh sách các phạm vi mà tôi có thể trực tiếp sử dụng. Bởi vì có hơn 1.000 ký tự biểu tượng cảm xúc, phải mất một lúc để tìm ra các phạm vi từ biểu đồ – SL988

Trả lời

4

Các tiêu chuẩn của Unicode Unicode® Technical Report #51includes một danh sách các biểu tượng cảm xúc (emoji-data.txt):

... 
21A9 ; text ; L1 ; none ; j # V1.1 (↩) LEFTWARDS ARROW WITH HOOK 
21AA ; text ; L1 ; none ; j # V1.1 (↪) RIGHTWARDS ARROW WITH HOOK 
231A ; emoji ; L1 ; none ; j # V1.1 (⌚) WATCH 
231B ; emoji ; L1 ; none ; j # V1.1 (⌛) HOURGLASS 
... 

Tôi tin rằng bạn sẽ muốn loại bỏ mỗi nhân vật được liệt kê trong tài liệu này mà đã có một Default_Emoji_Style của emoji.

Không có cách nào khác ngoài tham chiếu đến danh sách định nghĩa như thế này, để xác định các ký tự biểu tượng cảm xúc trong Unicode. Khi tham chiếu đến các câu hỏi thường gặp, chúng được lan truyền khắp các khối khác nhau.

+1

Bảng emoji-data.txt [đã được cập nhật thành 2.0] (http://www.unicode.org/Public/emoji/2.0//emoji-data.txt). Xem http://unicode.org/reports/tr51/index.html#emoji_data – drott

-1

Nếu bạn chỉ xử lý ký tự tiếng Anh và ký tự biểu tượng cảm xúc, tôi nghĩ nó có thể thực hiện được. Đầu tiên chuyển chuỗi của bạn thành các ký tự UTF-16, sau đó kiểm tra từng ký tự có giá trị lớn hơn 0x0xD800 (đối với biểu tượng cảm xúc nó thực sự> = 0xD836) phải là biểu tượng cảm xúc.

Điều này là do "The Unicode standard permanently reserves the code point values between 0xD800 to 0xDFFF for UTF-16 encoding of the high and low surrogates" và dĩ nhiên là ký tự tiếng Anh (và nhiều nhân vật khác sẽ không rơi vào phạm vi này)

Nhưng bởi vì mã emoji điểm bắt đầu từ U1F300 giá trị UFT-16 của họ thực sự rơi vào phạm vi này .

Kiểm tra tại đây để biết số quick reference for emoji UFT-16 value, nếu bạn không bận tâm tự làm điều đó.

+0

Xin Qiulang, Cảm ơn bạn đã trả lời trong khi tôi không nghĩ rằng đó là chính xác. Ví dụ truy cập đơn giản là [0x2600] (http://www.iemoji.com/view/emoji/183/nature/black-sun-with-rays) không nằm trong phạm vi bạn cung cấp nhưng là biểu tượng cảm xúc. Ngoài ra, tôi không chỉ đối phó với tiếng Anh mà còn đa ngôn ngữ. – SL988

+0

Có Tôi biết rằng biểu tượng cảm xúc. Nhưng phần lớn các ký tự biểu tượng cảm xúc rơi vào phạm vi tôi nói. Chỉ có một vài trong số họ không, nó sẽ được dễ dàng để đối phó với – Qiulang

+0

Kiểm tra ở đây https://en.wikipedia.org/wiki/Emoji, chỉ có một vài được gọi là Dingbats khối – Qiulang

Các vấn đề liên quan