我正在编写winforms apllication,有时我需要从文本框中获取文本并将其转换为std :: String。但是,文本框输入可以包含立陶宛字母。 转换我使用此代码:
std::string stringConvert(System::String ^ x) {
msclr::interop::marshal_context context;
return context.marshal_as<std::string>(x);
}
但是如果文本框中有一个像“Žibutė”这样的单词,结果是“?ibut?”。我该如何解决这个问题?
例如,我设置了一个带有一个文本框和一个按钮的表单。如果我写这样的话:
std::string a;
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
a = stringConvert(textBox1->Text);
setlocale(LC_ALL, "Lithuanian");
std::cout << a << std::endl;
}
我输入“ąčę”,控制台输出为“???”