2016-03-25 22 views
1

@ user3441734 solved most of my problems'dan sonra bile, bir [String: String] - String arasında dönüştürme yaparken düzgün bir şekilde işleyemediğim birkaç emoji vardır. eylem sorunu görmek için sırayla u içinInatçı emoji birleştirmeyecek: ‍❤‍‍

var u = "" 
u = "1f468-1f468-1f467-1f467" // ‍‍‍ 
//u = "1f918-1f3ff" // 
//u = "1f468-2764-1f48b-1f468" // ‍❤‍‍ (broken) 
//u = "1f3c7-1f3fb" // ‍ (broken) 

let unicodeArray = u.characters.split("-") 
    .map(String.init) 
    .map {String(UnicodeScalar(Int($0,radix: 16) ?? 0))} 

if let last = unicodeArray.last { 
    let separator: String 
    switch (unicodeArray.first, last) { 
     // Failed attempt to get tone applied to jockey 
    case let (horse_racing, _) where horse_racing == "\u{1f3c7}": 
     separator = "\u{200d}" 
    case let (_, tone) where "\u{1f3fb}"..."\u{1f3ff}" ~= tone: 
     separator = "" 
    case let (_, regionalIndicatorSymbol) where "\u{1f1e6}"..."\u{1f1ff}" ~= regionalIndicatorSymbol: 
     separator = "" 
    default: 
     separator = "\u{200d}" 
    } 
    print(unicodeArray.joinWithSeparator(separator)) 
} 

Uncomment her atama:

İşte sorun göstermek için bazı Bahçesi hazır kod. 3. ve 4. değerler şöyle oluşturulması gerekir:

Man-kiss-man

ve

Short-and-white

Düşünceler ...

  • Yarış atında uzun süre basmanın iOS'ta cilt tonları göstermediği ortaya çıkıyor. Bu yüzden, belki de jockey'nin ten tonunu standart emoji boyutlarında değerlendirmenin neredeyse imkansızlığı ile ilgili bir gözetim olduğunu varsayalım. Bu sorunun hala netleşmemesi durumunda yine de problemi çözemiyorum u = "1f468-2764-1f48b-1f468"
  • . Chrome ve Safari'nin bu combo-emoji gibi farklı davranışları vardır, bu yüzden sadece bağlantılı resimlerin size görünme şeklimizi sonuna kadar göstermesi garanti edilir. Bu emojilerin hepsi ya ten rengi oluşumlar ya da aynı cinsiyetten sevgi gösteren simgelerdir. Sistemde gizlenen tuhaf bir gizli ırkçılık & homofobi var mı ?! (Cue the komplo teorileri.)
  • u{200d} sıfır genişlikli marangoz kullanma denemem için yardımcı olmadığına dikkat edin.

Yani, belli emoji'leri Elma & Chrome'un işlemedeki böcek, ya da ben kaçırmıştım standardın bir başka idiosenkrazi var mı?

cevap

3

Herhangi bir komplo yok, hata kodunuzda.

U+1F468U+200DU+2764U+FE0FU+200DU+1F48BU+200DU+1F468

Not her karakter arasındaki Sıfır Genişlik Birleştirici (U+200D) ve VARYASYON SEÇİCİ-16 seçici:

  • ilk karakter

    üretilebilir Emoji sunum stilinin kullanıldığından emin olmak için AĞIR SİYAH KALP (U+2764) üzerinde (U+FE0F). Uygulanan çok kişilik gruplandırmanın tam bir listesi için 'a başvurun.

  • U+1F3C7 AT RACING bir emoji değiştirici tabanı değildir ve bu nedenle de cilt tonunu değiştiricilerini desteklemez.

+0

Aha! Bu, her ikisi de, örneğin, "unicode": "1f468-2764-1f468" '* ve *' "unicode_alternates": "1f468-200d-2764-fe0f-200d-1f468" 'e sahip tam JSON'daki farkı açıklar. İkincisi marangoz ve seçici kodları içerir! – clozach

İlgili konular