1
即使在@ user3441734 solved most of my problems之後,有一些表情符號在從[String:String]轉換爲String時似乎無法正確呈現。頑固的表情符號不會組合:❤
下面是一些遊樂場準備代碼來說明這個問題:
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))
}
取消註釋各分配u
又在行動中看到的問題。第3和第4的值應該呈現像這樣:
和
思考...
- 事實證明,對賽馬的長時間曝光無法在iOS上顯示膚色,所以讓我們假設這只是一個疏忽,或許與在標準表情符號大小下判斷騎師的膚色的幾乎不可能性有關。我仍然不知道這個問題
u = "1f468-2764-1f48b-1f468"
- 道歉,如果這個問題出來根本不清楚。 Chrome和Safari在這些combo-emoji上會有不同的行爲,所以只有鏈接的圖像才能保證以我看到的方式呈現給您。
- 這些表情符號都是膚色效果圖或同性戀情感的令牌。系統中是否存在某種奇怪的潛在種族主義&同性戀恐懼症?! (提示陰謀論。)
- 請注意,我嘗試使用零寬度連接器
u{200d}
沒有幫助。
所以,蘋果的問題& Chrome對某些表情符號的處理,還是還有另一個我錯過的標準的特質?
啊哈!這就解釋了在全部JSON中的差別,例如,「unicode」:「1f468-2764-1f468」*和*'「unicode_alternates」:「1f468-200d-2764-fe0f-200d-1f468」'。後者包括木匠和選擇器代碼! – clozach