Skip to content

Instantly share code, notes, and snippets.

@JohannMG
Last active May 2, 2017 16:23
Show Gist options
  • Select an option

  • Save JohannMG/76850a34783d438522bf7a11e6bd34c9 to your computer and use it in GitHub Desktop.

Select an option

Save JohannMG/76850a34783d438522bf7a11e6bd34c9 to your computer and use it in GitHub Desktop.
Playground figuring out emoji String encoding.
//: Playground - noun: a place where people can play
import UIKit
extension Character
{
func unicodeScalarCodePoint() -> String
{
let characterString = String(self)
let scalars = characterString.unicodeScalars
let integerRepresentation = scalars[scalars.startIndex].value
return String(format:"%2X", integerRepresentation)
}
}
extension String {
func getScalars() -> [UInt32] {
var tt = [UInt32]()
for i in self.unicodeScalars {
tt.append(i.value)
}
return tt
}
// TODO
///http://stackoverflow.com/questions/30757193/find-out-if-character-in-string-is-emoji
}
func charIntArrayToInputString(_ hexArray: [UInt32]) -> String {
var str = ""
for hex in hexArray {
str += String( describing: UnicodeScalar(hex)! )
}
return str
}
var sunglasses = "😎"
var one = "\u{0001F44D}"
var fam = "πŸ‘¨β€πŸ‘¨β€πŸ‘§"
var fam2 = "\u{0001F46A}"
var fam3 = "πŸ‘¨β€πŸ‘©β€πŸ‘§"
//man-woman-girl
//["1F468", "200D", "1F469", "200D", "1F467"]
//Man (0x0001F468) + glyph addition (0x0000200D) + Woman (0x0001F469) + glyph addition (0x0000200D) + Girl(0x0001F467)
Character(sunglasses)
let tt = one.substring(to: one.index(one.startIndex, offsetBy: 1) )
print ( Character(one).unicodeScalarCodePoint() )
print ( Character(one).unicodeScalarCodePoint() )
print ( charIntArrayToInputString(fam.getScalars()) )
print ( fam.getScalars() )
print ( fam2.getScalars() )
print ( Character(fam2) )
print ( fam3.getScalars().map{ return String(format:"%2X", $0) } )
//1F44D
//1F44D
//πŸ‘¨β€πŸ‘¨β€πŸ‘§
//[128104, 8205, 128104, 8205, 128103]
//[128106]
//πŸ‘ͺ
//[128104, 8205, 128105, 8205, 128103]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment