UTF-8 字符串插件介绍

UTF-8 字符串插件介绍

应用程序开发人员的一个潜在挑战是将其应用程序进行“国际化”。也许只是简单地处理包含非 ASCII 字符的姓名,或者更全面地支持像日语这样使用独特字符集的语言。

Corona 开发人员的核心问题是 Lua 的 string 函数仅将字符串视为一系列字节,并且它不识别多字节字符。如果你想知道包含多字节字符的字符串中有多少个字符,这会导致问题,因为在这种情况下,Lua 只会计算字节数。如果你需要收集子字符串或将非 ASCII 字符串转换为大写或小写,则可能会出现更多问题。总而言之,对于那些为全球分发构建应用程序的开发人员来说,这可能会非常令人沮丧。

解决方案?

最近,Corona Labs 发布了 UTF-8 插件,以帮助缓解这些问题。该插件的功能与现有的 string 库函数非常相似,只是 UTF-8 等效函数可以处理多字节字符串。例如,正如你可能在普通的 ASCII 字符串上使用 string.match() 一样,你可以用 utf8.match() 替换非 ASCII 字符串。

此插件还引入了几个用于高级用途的新函数,帮助你处理字符位置、偏移量、代码点、子字符串插入/删除等。你可以在我们的 文档 中查看完整的列表和用法详情。

用法

与所有 Corona 插件一样,你需要将其包含在你的 build.settings 文件中

然后,在你要使用 UTF-8 函数的任何模块中,像往常一样 require() 该插件

之后,只需将 string.[methodName] 函数作为 utf8.[methodName] 调用即可。例如,请注意同一个字符串上相应的“长度”函数 (string.len()utf8.len()) 的输出值

结论

如你所见,UTF-8 插件为 Corona 开发人员提供了一些有价值的新功能,特别是那些为国际分发开发应用程序的开发人员。要了解更多信息,请参考文档 或在 Corona 论坛中讨论此插件。

Rob Miracle
[email protected]

Rob 是 Corona Labs 的开发人员关系经理。除了热衷于帮助其他开发人员使用 Corona 制作出色的游戏外,他还喜欢在业余时间制作游戏。自 1979 年以来,Rob 一直在从个人计算机到大型机上编写游戏代码。他在游戏行业拥有超过 16 年的专业经验。

3 条评论
  • RuneW
    发表于 3 月 22 日 06:54

    谢谢!

  • madclown
    发表于 5 月 11 日 07:21

    这是一个很棒且非常需要的插件。

  • Andrzej Futuretro
    发表于 6 月 16 日 09:31

    这里来晚了,但想对这个很棒的插件表示感谢!