/ / Swift: verifica se il primo carattere di String è ASCII o una lettera con un accento - swift, ascii, segni diacritici, nscharacterset

Swift: controlla se il primo carattere di String è ASCII o una lettera con un accento - rapido, ascii, segni diacritici, nscharacterset

In Swift, come faccio a verificare se il primo carattere di a String è ASCII o una lettera con un accento? Wider i personaggi, come le emoticon e i logogrammi, non contano.

Sto cercando di copiare come l'app Messaggi iPhonemostra le iniziali di una persona accanto al loro messaggio in una chat di gruppo, ma non include un'indicazione se è una emoticon o un carattere cinese, ad esempio.

Vedo decomposableCharacterSet & nonBaseCharacterSetma non sono sicuro che siano quelli che voglio.

risposte:

2 per risposta № 1

Ci sono molti caratteri Unicode con un accento. Questo è per te un personaggio con un accento?

Ê Ð IO E u é⃝


In Unicode ci sono caratteri combinati, che sono due caratteri unicode come uno:

let eAcute: Character = "u{E9}"                         // é
let combinedEAcute: Character = "u{65}u{301}"          // e followed by ́
// eAcute is é, combinedEAcute is é

Per Swift il Character è la stessa!

Buon riferimento è Qui.


Se vuoi conoscere il CodeUnit dei caratteri nella stringa, puoi usare il utf8 o utf16 proprietà. Sono diversi!

let characterString: String = "abc"
for character in characterString.utf8 {
print("(character) ")
}
// output are decimal numbers: 97 98 99
// output of only é: 195 169, used the combined é

Quindi è possibile verificare l'alfabeto ASCII A-Z come65-90 e a-z come 97-122. E poi controllare la tomba accentuale standard e acuta À 192 A 193 È 200 É 201 à 224 225 è 232 é 233 ... e quelli combinati e tutto ciò che ti piace.

Ma ci sono simboli che assomigliano a una lettera latina con accento, ma non hanno lo stesso significato!

Dovresti assicurarti che solo questi caratteri sono accettati, che vuoi con il significato linguistico corretto.