gpt4 book ai didi

c++ - 如何在所有平台上使用 C++ 程序显示重音字符?

转载 作者:可可西里 更新时间:2023-11-01 11:28:08 26 4
gpt4 key购买 nike

我正在尝试将 C++11 程序从 Windows 移植到 Linux (GCC-4.9)。本来我只是在程序里面设置locale而已

setlocale(LC_ALL, "");

但是,它在 Linux(最新版本的 Linux Mint)上显示缺少字符。然后我继续将所有源文件保存为 UTF-8 格式,这在 linux 下解决了问题,但现在所有字符在 windows 中都乱七八糟。

如果有帮助,语言是法语。有没有什么方法可以在两个平台下正确显示文本而不会有太多麻烦?

非常感谢您的帮助,谢谢。

void EcranBienvenue()
{
char coinHG = (char)201;
char coinHD = (char)187;
char coinBG = (char)200;
char coinBD = (char)188;
char ligneH = (char)205;
char ligneV = (char)186;
#ifdef _WIN32
system("cls");
#elif defined __linux__
system("clear");
#else
cout << string(20,'\n');
#endif
setlocale(LC_ALL, "C");
cout << coinHG;
for (int i = 0; i < 48; i++)
cout << ligneH;
cout << coinHD << endl;
cout << ligneV << " " << ligneV << endl;
cout << ligneV << " Les productions inc " << ligneV << endl;
cout << ligneV << " " << ligneV << endl;
cout << ligneV << " Système de gestion des abonnements " << ligneV << endl;
cout << ligneV << " " << ligneV << endl;
cout << coinBG;
for (int i = 0; i < 48; i++)
cout << ligneH;
cout << coinBD << endl;
setlocale(LC_ALL, "");

}

边框在 Linux 上不工作是正常的,但是。但是,这三行文字会在终端上准确显示。

在 Windows 上,“è”将是一个不正确的字符。

Système de gestion des abonnements 

最佳答案

C++ 没有为(窄)字符串定义任何编码,Windows 使用 CP-1252 而 Linux 使用 UTF-8。使用 std::wstringstd::wcout

关于c++ - 如何在所有平台上使用 C++ 程序显示重音字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29112841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com