Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-在linux终端上打印希腊字母_C_Linux_Terminal - Fatal编程技术网

C-在linux终端上打印希腊字母

C-在linux终端上打印希腊字母,c,linux,terminal,C,Linux,Terminal,我有一篇关于C语言的论文,要求在终端上打印一些希腊语句子。 在提供给我们的代码模板中,有以下代码行: 系统(“chcp 1253>nul”) 这是用来印刷希腊文字的。 在我的Ubuntu终端中,我看到: �������� ����� �� ����� ����� ��� �������� ���� ������ 那么,如何在终端中打印希腊字符呢 这在大多数Linux中都是开箱即用的。唯一要做的就是使用它 setlocale(LC_ALL, ""); 在节目开始的时候。这取决于UTF-8是用

我有一篇关于C语言的论文,要求在终端上打印一些希腊语句子。 在提供给我们的代码模板中,有以下代码行:

系统(“chcp 1253>nul”)

这是用来印刷希腊文字的。 在我的Ubuntu终端中,我看到:

�������� ����� �� ����� ����� ��� �������� ���� ������

那么,如何在终端中打印希腊字符呢

这在大多数Linux中都是开箱即用的。唯一要做的就是使用它

 setlocale(LC_ALL, "");
在节目开始的时候。这取决于UTF-8是用户区域设置的默认编码选择这一事实。标准说明此调用将切换到用户的当前区域设置。默认设置是使用“C”语言环境,该语言环境可能支持也可能不支持国家字符

默认情况下,gcc将源代码解释为UTF-8编码的代码。编译时选项可以改变这一点,但建议在Linux上将所有内容都保存在UTF-8中。来自Windows的源可能没有UTF-8编码,需要重新编码。为此使用
iconv
实用程序;L如果源与特定的旧代码页关联,请尝试将该代码页名称作为源编码

输入或输出非ASCII文本的C程序(符合ISO C99或更高版本,或POSIX.1或更高版本)应使用宽字符串、宽I/O和本地化

例如:

#include <stdlib.h>
#include <locale.h>
#include <stdio.h>
#include <wchar.h>

int main(void)
{

    /* Tell the C library to use the current locale settings. */
    setlocale(LC_ALL, "");

    /* Standard output is used with the wide I/O functions. */
    fwide(stdout, 1);

    /* Print some Greek text. */
    wprintf(L"Γειά σου Κόσμε!\n");

    return EXIT_SUCCESS;
}
如果需要,可以使用

sudo install -o 0 -g 0 -m 0755 to-utf8 /usr/bin/
第一个命令行参数是源字符集(使用
iconv--list
查看它们),然后是要修复的文件列表

该脚本将创建一个自动删除的临时文件。
iconv
行将每个文件的字符集转换为UTF-8,并将结果保存到临时文件中。
sed
文件将任何CRLF(
\r\n
)换行符更改为LF(
\n
),覆盖文件的内容


(不是使用第二个临时文件来保存内容,而是使用
sed
将其输出定向到原始文件,这意味着原始文件将保持其所有者和组的完整性。)

chcp来自Windows。它对Ubuntu没有影响。你能用UTF-8语言环境吗?是的,我想。。。我可以在哪里使用UTF-8语言环境?你可以在你的终端中使用UTF-8语言环境吗?在我的语言环境中,我看到:
LANG=el\u GR.UTF-8 LANGUAGE=en\u US:en
并且所有的LC\uuu设置为el\u GR.UTF-8,看起来你可以。尽管在我的语言环境中,utf-8有一个不同的名称:LANG=en_US.utf8。因此,您可以尝试在UTF-8中创建一个源文件,并对其进行编译,然后一切都可能正常:
$file main.cpp
main.cpp:C source,UTF-8 Unicode text
sudo install -o 0 -g 0 -m 0755 to-utf8 /usr/bin/