Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

101
Views
Escalar de cara de perro no válido

Pensé que entendía bastante bien los escalares Unicode en Swift, pero el emoji con cara de perro me demostró que estaba equivocado.

 for code in "🐶".utf16 { print(code) }

Los códigos UTF-16 son 55357 y 56374 . En hexadecimal, eso es d83d y dc36 .

Ahora:

 let dog = "\u{d83d}\u{dc36}"

En lugar de obtener una cadena con "🐶", aparece un error:

Escalar Unicode no válido

Probé con códigos UTF-8 y tampoco funcionó. No arrojar un error, sino devolver "ð¶" en lugar de la cara de perro.

¿Que esta mal aquí?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

La secuencia de escape \u{nnnn} espera un valor escalar Unicode , no la representación UTF-16 (con sustitutos altos y bajos):

 for code in "🐶".unicodeScalars { print(String(code.value, radix: 16)) } // 1f436 let dog = "\u{1F436}" print(dog) // 🐶

Las soluciones para reconstruir una cadena a partir de su representación UTF-16 se pueden encontrar en ¿Hay alguna manera de crear una cadena a partir de una matriz utf16 en Swift? . Por ejemplo:

 let utf16: [UInt16] = [ 0xd83d, 0xdc36 ] let dog = String(utf16CodeUnits: utf16, count: utf16.count) print(dog) // 🐶
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!