结合std::wstring和函数 我在SfML 2.1中创建文本(在C++中没有什么关系)。

结合std::wstring和函数 我在SfML 2.1中创建文本(在C++中没有什么关系)。,c++,string,ascii,sfml,wstring,C++,String,Ascii,Sfml,Wstring,设置文本字符串如下所示:text.setString(“某物”) 好的,但因为我的游戏语言是波兰语,所以我必须输入一些字符,如ą、ż、ł、ś、ć等,这些字符在我的游戏的ASCII编码中不“受支持” Iv'e提出了这个解决方案:text.setString(L“oomęthing”) 但当您尝试从另一个函数组合wstring和string时,就会出现问题。例如: text.setString(L"Name: " + PlayerName() ); 我曾尝试将其转换为字符串或创建临时变量,但要么无

设置文本字符串如下所示:
text.setString(“某物”)

好的,但因为我的游戏语言是波兰语,所以我必须输入一些字符,如ą、ż、ł、ś、ć等,这些字符在我的游戏的ASCII编码中不“受支持”

Iv'e提出了这个解决方案:
text.setString(L“oomęthing”)

但当您尝试从另一个函数组合wstring和string时,就会出现问题。例如:

text.setString(L"Name: " + PlayerName() );
我曾尝试将其转换为字符串或创建临时变量,但要么无效,要么删除了这个“特殊字符”

完整示例:

std::string PlayerName()
{
    std::string name = "John";
    return name;
}

int main()
{
    sf::Text hello;
    hello.setString(L"Hello " + PlayerName() + L", how are you?");
    //I need to use L" "

    window.draw(hello);
}
有什么想法吗?好的,我知道了

正如@MooingDuck所说,这在这类问题上非常有效

我的做法是:

std::string PlayerName()
{
    std::string name = "John";
    return name;
}

int main()
{
    sf::String helloText = L"Hello ";
    helloText += PlayerName();
    helloText += L", how are you?";

    sf::Text hello;
    hello.setString(helloText);

    window.draw(hello);
}

非常感谢你的帮助

请提供
PlayerName()
返回的类型?您能否提供一个代码示例,让我们了解您正在做什么?您需要将
PlayerName()
转换为wstring。您可以使用本文中的代码来实现这一点:基本上,您要做的是将所有
std::string
替换为
std::wstring
,只要可能:/实际上,我刚刚看到SFML有自己的字符串类型。使用它:@Bionicl:visualstudio有一个
字符集:使用Unicode字符集
,它完全不相关,在这里一点帮助都没有。