当我尝试在 iOS 上的 UILabel 中显示日语字符串时,它会使用中文编码而不是日语显示。
这两个编码是nearly除少数特殊情况外,完全相同。例如,以下是字符“直”(Unicode U+76F4) 在中文(上)与日文(下)中的呈现方式:
(see here https://en.wikipedia.org/wiki/Han_unification#Examples_of_language_dependent_characters欲了解更多示例)
日语字符串唯一正确呈现的时间是当用户的系统区域设置为ja-jp
(日本),但我希望它呈现为日语all users.
有什么办法强制日语编码吗?安卓有TextView.TextLocale
,但我在 iOS 上没有看到任何类似的东西UILabel
(安卓也有同样的问题 https://stackoverflow.com/questions/67797257/how-to-specify-japanese-encoding-for-a-label。我标记了这个 Swift/Objective-C,因为虽然我正在寻找 Xamarin.iOS 解决方案,但 API 几乎是相同的)
您只需要为属性字符串指定语言标识符,例如
let label = UILabel()
let text = NSAttributedString(string: "直", attributes: [
.languageIdentifier: "ja", // << this !!
.font: UIFont.systemFont(ofSize: 64)
])
label.attributedText = text
使用 Xcode 13.2 / iOS 15.2 进行测试
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)