无法在终端中打印西里尔字母



我有一个实验室工作从我的大学-我必须打印ASCII表与乌克兰符号,然后使从乌克兰语到英语的音译,但我遇到了问题。

所以,我要在C++中打印ASCII扩展表,它必须包含乌克兰字母(西里尔字母)。我在KDE neon 5.26linux发行版,它是基于Ubuntu。终端显然是KDE的Console

我写的代码:

#include<iostream>
int main(void) {
for (unsigned char i = 32; int(i) < 255; i++) {
std::cout <<" [" << i << "] " << int(i) << " t";
if ((i-1)%5 == 0)
std::cout << "n";
}
char ua_str[] = "Привіт";  // hello in ukrainian
std::cout << "nn" << ua_str << "n" << ua_str[4] << " is " << int(ua_str[4]) << "n";
return std::cout.fail() ? EXIT_FAILURE : EXIT_SUCCESS;
}

g++ lab3.cpp编译它产生这样的输出:

我很感兴趣,它是如何打印char ua_str[]而不打印ua_str[4]的。

终端编码设置为UTF8,我在终端编码设置中找不到ASCII。如果我用./a.out > abc.txt将输出重定向到abc.txt文本文件并打开它,它看起来像下面的:

所以,我在终端运行locale -a:

然后我试图在for循环之前将std::setlocale(LC_ALL, "uk_UA.utf8");添加到int main(void)中的程序中,但它没有改变任何东西,输出是相同的…

我稍后要制作音译脚本,但无法打印并正常使用乌克兰字母…

所以,问题是:如何在KDE neon 5.26上的C++中打印和使用西里尔字母汽车?

我想我已经试过了我能做的一切,但它不起作用。请帮帮我。

这是乌克兰语字符集KOI8-U的rtf: https://www.rfc-editor.org/rfc/rfc2319.html ....您可以将std ascii表映射到所需的西里尔字符。另一个选择是使用yandex之类的工具。https://yandex.com/dev/translate/这是一个api翻译,但我认为这是一个服务收费,但有使用限制或只是一个临时密钥,如果没有支付。它对于翻译非常有用,并且是一个简单的api。

相关内容

  • 没有找到相关文章

最新更新