到目前为止,我一直在嵌入式系统(路由器、交换机、电信设备等)的 C++ 应用程序中使用 std::string。
对于下一个项目,我正在考虑从 std::string 切换到 std::wstring 以支持 Unicode。例如,这将允许最终用户在命令行界面 (CLI) 中使用中文字符。
我应该预料到哪些并发症/头痛/意外?例如,如果我使用仍然使用 std::string 的第三方库怎么办?
由于对国际字符串的支持对于我所从事的嵌入式系统类型来说并不是那么强烈的要求,因此只有在不会引起重大麻烦的情况下我才会这样做。
请注意,许多通信协议需要 8 位字符(或 7 位字符或其他字符),因此您经常需要在内部 wchar_t/wstring 数据和外部编码之间进行转换。
当您需要 Unicode 字符的 8 位表示时,UTF-8 编码非常有用。 (看如何编写对 UTF-8 安全的代码?以获得更多信息。)但请注意,您可能需要支持其他编码。
越来越多的第三方库支持 Unicode,但仍有很多不支持。
我真的无法告诉你这是否值得让你头疼。这取决于您的要求。如果您从头开始,那么从 std::wstring 开始比稍后从 std::string 转换为 std::wstring 更容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)