我正在用C写一个程序,当我在cmd.exe中运行它时,我希望在菜单中有希腊字符。 有人说,为了包含希腊字符,你必须使用一个printf ,像这样:
printf(charset:IS0-1089:uffe);
但他们不确定。
有谁知道这是怎么做到的吗?
确定IP是否被阻止
是什么让我的计时器跑不准?
在我的glibc版本中,ld-linux的segfault
将SurfaceImageSource转换为PNG
如何在linux上正确设置串行通信
如何从java服务器发送一个string到C ++客户端?
如何摆脱Visual Studio(strcpy,sprintf,strdup)中的“不安全”警告/错误
控制台窗口有图标,但是OpenGL / gluT窗口没有。 为什么?
Visual Studio c#远程deBUGgingclosureswindows服务
什么是linux相当于LPTSTR和LPCSTR?
假设windows,您可以:
将您的控制台字体设置为Unicode TrueType字体:
使用“ANSI”机制发射数据
此代码打印γειά σου :
#include "windows.h" int main() { SetConsoleOutputCP(1253); //"ANSI" Greek printf("xE3xE5xE9xDC xF3xEFxF5"); return 0; }
十六进制代码表示编码为windows-1253时的γειά σου 。 如果使用编辑器将数据保存为windows-1253,则可以使用文字。 另一种方法是使用OEM 737 (实际上是DOS编码)或使用Unicode。
我使用SetConsoleOutputCP来设置控制台代码页,但是可以在运行程序之前键入命令chcp 1253 。
你可以使用printf打印一个unicode字符:
printf("u0220n");
这将打印Ƞ
我认为这可能只适用于你的控制台支持希腊语。 可能你想要做的是将字符映射到希腊语,但使用ASCII。 对于C#,但在C中有相同的想法
913到936 =大写的希腊字母
945到968 =小写希腊字母
阅读更多在Suite101:使用希腊字母和C#:如何正确显示ASCII代码创建C#应用程序| Suite101.com在这个链接 。
一种方法是打印一个宽字符串。 不幸的是,windows需要一些非标准的设置来完成这个工作。 这段代码在#if块内部完成了这个设置。
#include <locale.h> #include <stdlib.h> #include <stdio.h> #include <wchar.h> /* This has been reported not to autodetect correctly on tdm-gcc. */ #ifndef MS_STDliB_BUGS // Allow overrIDing the autodetection. # if ( _WIN32 || _WIN64 ) # define MS_STDliB_BUGS 1 # else # define MS_STDliB_BUGS 0 # endif #endif #if MS_STDliB_BUGS # include <io.h> # include <fcntl.h> #endif voID init_locale(voID) // Does magic so that wprintf() can work. { // Constant for fwIDe(). static const int wIDe_orIEnted = 1; #if MS_STDliB_BUGS // windows needs a little non-standard magic. static const char locale_name[] = ".1200"; _setmode( _fileno(stdout),_O_WTEXT ); #else // The correct locale name may vary by OS,eg,"en_US.utf8". static const char locale_name[] = ""; #endif setlocale( LC_ALL,locale_name ); fwIDe( stdout,wIDe_orIEnted ); } int main(voID) { init_locale(); wprintf(L"μουσάων Ἑλικωνιάδων ἀρχώμεθ᾽n"); return EXIT_SUCCESS; }
必须将其保存为带有BOM的UTF-8,以便旧版本的Visual Studio正确读取它。 您的控制台也必须设置为等宽字体统一字体,如LucIDa控制台,以正确显示它。 为了在ASCII字符串中混合宽字符串,标准将%ls和%lc格式说明符定义为printf() ,尽管我发现这些方法在任何地方都行不通。
另一种方法是将控制台设置为UTF-8模式(在windows上,使用chcp 65001进行此 *** 作),然后使用printf(u8"μουσάων Ἑλικωνιάδων ἀρχώμεθ᾽n");打印UTF-8字符串printf(u8"μουσάων Ἑλικωνιάδων ἀρχώμεθ᾽n"); 。 UTF-8是windows上的二等公民,但通常是有效的。 尝试运行,而不先设置代码页,但是,你会得到垃圾。
总结以上是内存溢出为你收集整理的希腊字母在Windows Concole全部内容,希望文章能够帮你解决希腊字母在Windows Concole所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)