当我在Windows中打开cmd.exe时,它使用的是什么编码?
如何查看当前使用的编码?它取决于我的区域设置还是有任何环境变量需要检查?
键入具有特定编码的文件时会发生什么?有时我会收到乱码(使用的编码不正确),有时候它会有所作为.但是,只要我不知道发生了什么,我就不相信任何事情.谁能解释一下?
在一个相关的问题之后,我想问一下C++ 11中的新字符和字符串文字类型.看来我们现在有四种字符和五种字符串文字.角色类型:
char a = '\x30'; // character, no semantics
wchar_t b = L'\xFFEF'; // wide character, no semantics
char16_t c = u'\u00F6'; // 16-bit, assumed UTF16?
char32_t d = U'\U0010FFFF'; // 32-bit, assumed UCS-4
Run Code Online (Sandbox Code Playgroud)
和字符串文字:
char A[] = "Hello\x0A"; // byte string, "narrow encoding"
wchar_t B[] = L"Hell\xF6\x0A"; // wide string, impl-def'd encoding
char16_t C[] = u"Hell\u00F6"; // (1)
char32_t D[] = U"Hell\U000000F6\U0010FFFF"; // (2)
auto E[] = u8"\u00F6\U0010FFFF"; // (3)
Run Code Online (Sandbox Code Playgroud)
问题是:\x/ \u/ \U …
我有一个基于控制台的小应用程序,它将解决物理方程.我试图询问用户是否想要在给定情况下找到ΔV,但我无法弄清楚如何将字母增量打印到控制台.这是我的代码:
cout << "Select what you would like to find:\n"
<< "1 - Acceleration" << endl
<< "2 - Initial Velocity" << endl
<< "3 - Final Velocity" << endl
<< "4 - ?V" << "\n\n";
cin >> choice;
Run Code Online (Sandbox Code Playgroud)
这不会向控制台打印"ΔV"."Δ"甚至不在我的IDE(Dev-C++)中显示,而是显示为问号.如果有人知道如何将Δ打印到控制台,我将非常感谢您能给我的任何帮助.
提前致谢!
我们知道在字符串文字中,"\ u94b1"将被转换为一个字符,在这种情况下是一个中文单词"钱".但是如果它在一个字符串中字面上是6个字符,说'\','u','9','4','b','1',我怎样才能手动将它转换为字符?
例如:
string s1;
string s2 = "\u94b1";
cin >> s1; //here I input \u94b1
cout << s1 << endl; //here output \u94b1
cout << s2 << endl; //and here output ?
Run Code Online (Sandbox Code Playgroud)
我想转换s1所以也cout << s1 << endl;将输出?.
有什么建议吗?
我需要在Linux终端上打印一些unicode字符iostream.虽然发生了奇怪的事情.我写的时候:
cout << "\u2780";
Run Code Online (Sandbox Code Playgroud)
我明白了:?这几乎就是我想要的.但是,如果我写:
cout << '\u2780';
Run Code Online (Sandbox Code Playgroud)
我明白了:14851712.
问题是,我不知道在编译时要打印的确切字符.因此,我想做一些事情:
int x;
// some calculations...
cout << (char)('\u2780' + x);
Run Code Online (Sandbox Code Playgroud)
哪个印刷品:?.使用wcout或wchar_t替代也不起作用.如何获得正确的打印?
从我在互联网上发现的内容来看,我直接从Debian Wheezy存储库使用g ++ 4.7.2编译器似乎很重要.
我正在Linux环境下使用C++进行国际象棋游戏,我希望在bash终端中使用unicode字符显示这些内容.有没有办法用cout显示符号?
输出骑士的一个例子很好:♞= U + 265E.
我目前正在编写一个涉及数学的 C++ 程序。因此,我试图将某些对象表示为在其类的 wstring 成员变量中具有下标数字。然而,以任何容量存储这些字符的尝试都会迫使它们成为非下标对应物。相比之下,粘贴在代码中的字符的直接使用可以根据需要保留。以下是我试验过的几种情况:
setlocale(LC_ALL, "");
wchar_t txt = L'\u2080';
wcout << txt << endl;
myfile << txt << endl;
Run Code Online (Sandbox Code Playgroud)
这将向文件和控制台输出“0”。
setlocale(LC_ALL, "");
wcout << L"x??" << endl;
myfile << L"x??" << endl;
Run Code Online (Sandbox Code Playgroud)
这会将“x01”输出到文件和控制台。
setlocale(LC_ALL, "");
wcout << "x??" << endl;
myfile << "x??" << endl;
Run Code Online (Sandbox Code Playgroud)
这输出“xâ'?â'?” 到控制台,如果可能的话我想避免,还有“x??” 到我想要的文件。理想的程序状态是将属性输出到文件和控制台的状态,但如果不可能,那么最好将非下标字符打印到控制台。
我的代码打算将整数转换为其相应的下标。我如何尽可能顺利地操纵这些字符而不将它们转换回来?我怀疑字符编码起了一定作用,但我不知道如何将 Unicode 编码合并到我的程序中。