如何将包含非英语字符的String ^转换为std :: string

时间:2016-04-21 17:15:20

标签: .net string winforms c++-cli clr

我正在编写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;
        }

我输入“ąčę”,控制台输出为“???”

0 个答案:

没有答案