表示了错误的扩展字符

Wrong extended characters are represented

我找不到任何与我的问题相关的答案,我想要一个像“╔══╗”这样的字符串,但显示的是错误的字符而不是它们。我发现了问题,那是因为有符号字符,每个字符的值与元素的 ascii table 值不同。我如何在 C++ 中使用 char 来做到这一点?

int main() {
    char a[] = "╔══╗";
    std::cout << a << std::endl;
}

使用std::wstring(包含在<string>中)和L"..."

#include <string>

int main(/**/)
{
    std::wstring wstr = L"╔══════════════╗";
}

注意:没有很好的跨平台方式来打印这样的字符串。参见 How to print a wstring?, How to print a wstring on MacOs or Unix?, C++ wide character locale doesn't work