Unity 多语言问题C#篇

  • DateTime.ToString()不同语言环境问题
    • 问题描述:PlayerPrefs.SetString("timeKey", DateTime.Now.ToString());切换系统语言后DateTime.Parse(PlayerPrefs.GetString("timeKey"));报错FormatException: String was not recognized as a valid DateTime。
    • 原因:比如英语环境DateTime.Now.ToString输出结果是(7/29/2023 1:32:38 PM),在越南语(29/07/2023 1:32:38 CH)。英文PM表示下午而越南语是CH表示下午。当用英语保存格式,在越南语环境下会报异常。
    • 解决方案:DateTime.Now.ToString("yy:MM:HH")指定特定输出格式。
  • float或者doubule Parse转换错误
    • 问题描述:比如在越南语中 float.Parse("1.23") 得到的值是123,小数点没生效。
    • 原因:越南语中是用逗号(,)表示小数点(.)。
    • 解决方案:一、float.Parse("1,23")主要这里是逗号。 二、float.Parse("1.23", CultureInfo.InvariantCulture) 表示转换不依赖系统语言。
  • 字符串ToLower或ToUpper错误
    • 问题描述:在土耳其语言中"LIKE".ToUpper(),得到值是lıke,注意这里小写并不是小写的i
    • 原因:土耳其小写的i是没有上面的点ı,比较独特
    • 解决方案:"LIKE".ToLowerInvariant()依赖系统语言。

资源分享

你可能感兴趣的:(unity,unity,c#,游戏引擎)