Cuando intento mostrar una cadena japonesa en una UILabel en iOS, se muestra utilizando la codificación china en lugar de la japonesa.
Las dos codificaciones son casi idénticas, excepto en algunos casos específicos. Por ejemplo, así es como se representa el carácter 直 (Unicode U+76F4) en chino (arriba) frente a japonés (abajo):
(ver aquí para más ejemplos)
La única vez que las cadenas japonesas se procesan correctamente es cuando la configuración regional del sistema del usuario es ja-jp (Japón), pero me gustaría que se muestre en japonés para todos los usuarios.
¿Hay alguna forma de forzar la codificación japonesa? Android tiene TextView.TextLocale , pero no veo nada similar en iOS UILabel
(La misma pregunta para Android . Etiqueté este Swift/Objective-C porque, aunque estoy buscando una solución Xamarin.iOS, la API es casi la misma)
Solo necesita especificar el identificador de idioma para la cadena atribuida, como
let label = UILabel() let text = NSAttributedString(string: "直", attributes: [ .languageIdentifier: "ja", // << this !! .font: UIFont.systemFont(ofSize: 64) ]) label.attributedText = textProbado con Xcode 13.2 / iOS 15.2