繁体   English   中英

如何将UTF-8文本转换为用于SFML的wstring?

[英]How to convert UTF-8 text into a wstring used for SFML?

在Linux下

我想从UTF8编码在SFML窗口中打印文本,但是SFML仅使用wstring,我用恒定的char *编写了一个示例,但我想要一个char *。 编码 :

std::string str(messaging);
std::wstring wsTmp(str.begin(), str.end());

也不:

std::wstring_convert<std::codecvt_utf8_utf16<char16_t>,char16_t> convert;
std::u16string dest = convert.from_bytes(source); 

也不:

std::vector<char> v(messaging, messaging + strlen(messaging));
std::string str(v.begin(), v.end());
std::wstring wstr(v.begin(), v.end());

我从溢出尝试了其他代码,但是它不起作用,并且它是旧消息,所以也许还有另一个功能?

SFML使用它自己的字符串类sf::String

您可以使用静态fromUtf8方法将包含UTF-8的std::string转换为sf::String

std::string str(messaging);
sf::String sfTmp = sf::String::fromUtf8(str.begin(), str.end());

您应该可以在需要字符串的SFML中的任何地方使用sfTmp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM