Ответ 1
Hex to Int
Если вы начинаете с \u{0D85}
, и знаете шестнадцатеричное значение символа Юникода, вы можете записать его в следующем формате, потому что это уже Int
.
let myInt = 0x0D85 // Int: 3461
String to Int
Я предполагаю, что у вас есть "\u{0D85}"
(в кавычках), что делает его String
по умолчанию. И поскольку это String
, вы не можете быть уверены, что в общем случае у вас будет только одно значение Int
.
let myString = "\u{0D85}"
for element in myString.unicodeScalars {
let myInt = element.value // UInt32: 3461
}
Я мог бы также использовать myString.utf16
и let myInt = Int(element)
, но мне легче справляться с сканирующими значениями Unicode (UTF-32), когда есть возможность таких вещей, как emoji. (Подробнее см. этот ответ.)
Символ к Int
Swift Character
, который является расширенным кластером grapheme, не имеет свойства utf16
или unicodeScalars
, поэтому, если вы начинаете с Character
, затем сначала конвертируете его в String
, а затем следуете указаниям в разделе Строка в Int выше.
let myChar: Character = "\u{0D85}"
let myString = String(myChar)