Last active
May 2, 2017 16:23
-
-
Save JohannMG/76850a34783d438522bf7a11e6bd34c9 to your computer and use it in GitHub Desktop.
Playground figuring out emoji String encoding.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //: 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