【发布时间】:2012-10-19 19:18:54
【问题描述】:
我正在尝试在游戏中找到一个很好的替代 std::string 的方法。 wstring 在 Android 中无法正常工作。到目前为止,我只使用 ushort[] 和 0-65535 范围(每个字符 2 个字节),它似乎适用于 11 种语言作为位图字体,但今后我希望得到更好的实现。
u8"xxxyyy" 文字符号在 VC++ 编译器中尚不支持,我还有什么其他选择?
【问题讨论】:
-
阻力最小的路径可能是直接将 UTF-8 放入
std::string对象中。对于任何不在 ASCII 范围内的内容,您将不得不使用手动编码的反斜杠转义来编写 UTF-8 文字,并且您将无法使用locale,但根据我的经验,locale无论如何都没用。 -
我正在尝试获得正确的 UTF8 实现,以便其他人更容易修改文件以进行导入。
-
也许你应该列出一些让你寻找替代 UTF-8
std::stringss 的东西。如果只是u8在 VS 中不受支持,那么您只需要解决该问题。 -
为什么不将文本保存在 std:string 或 char[] 中?在代码中的任何地方都有字符串的 content 是一条通向无处的明确道路。让您的内容/资产/资源系统以二进制/UTF8 格式交付它们。每次您在代码中发现 xxx = "Game Over" 时,某处的游戏编码员都会死掉。
-
@Zack 如果您将其作为答案而不是评论,我会赞成。这是正确的方法。