在C ++中打印特殊符号的值表在哪里?

时间:2016-06-05 18:55:22

标签: c++ visual-c++ character-encoding escaping

要在C ++中获取某些特殊字符,我们可以在单引号中包含八进制值的转义序列,因此'\nnn'其中nnn是八进制代码。 我目前所知道的示例是'\370',用于度数符号(°)。 在C ++中打印非简单ascii字符的其他此类值的列表在哪里?

ascii-code.com的代码表中有这两个条目

DEC OCT HEX BIN Symbol  HTML Number HTML Name   Description
176 260 B0  10110000    °    ° °       Degree sign
248 370 F8  11111000    ø    ø ø    Latin small letter o with slash

显然正确解决了我的问题 - 即,将'\nnn'分配给char变量或在Visual Studio 2015中通​​过cout <<插入到输出流。 哪一张桌子正确?它与“代码集”有关,但我不知道VS 2015中的默认代码集是什么,或者如何更改代码集。

下面建议我“使用\u####,其中####是表示所需字符的Unicode值的数字。例如\u2014将打印 - (em-dash) “。但是,当我尝试该示例 - 或来自rapidtables.com/code/text/unicode-characterswikipedia.org/wiki/List_of_Unicode_characters的任何其他示例时 - 我没有得到给定代码所期望的字符。例如,\20AC应该产生一个欧元符号(€),但是我得到一个带有cedilla(Ç)的大C。在Visual Studio 2015中用于在C ++中打印特殊字符的Unicode值表在哪里?

1 个答案:

答案 0 :(得分:1)

how to change the codeset

在Visual Studio 2013中准备的C ++控制台应用程序的下一代码可能会有所帮助。 Based on this answer

// 37645602.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"     // added by Visual Studio
#include <fstream>
#include <iostream>
#include <codecvt>
#include <locale>
#include <fcntl.h>
#include <io.h>

const wchar_t* testArray[] =
{
    L"€ ° ø — ď π щ",                                      // for debugging
    L"\u20AC \u00b0 \u00F8 \u2014 \u010f \u03c0 \u0449"    // the same characters
};

int _tmain(int argc, _TCHAR* argv[])
{
    _setmode(_fileno(stdout), _O_U16TEXT);

    for (int j = 0; j < 2; ++j)
    {
        std::wcout << testArray[j] << L'\n';
    }
    return 0;
}

<强>输出

==> 37645602.exe
€ ° ø — ď π щ
€ ° ø — ď π щ

使用拉丁语,斯拉夫语,西里尔语和希腊语字符的混合测试(类似于此Alt KeyCode Finder的脚本输出):

==> altcodes "€°ø—ďπщ"
Ch Unicode    Alt?      mod 256     UTF-8   IME 0405/cs-CZ; CP852; ANSI 1250
 €  U+20AC    8364        …172…  0xE282AC   Euro Sign
 °  U+00B0     176        …176…    0xC2B0   Degree Sign
 ø  U+00F8     248        …248…    0xC3B8   Latin Small Letter O With Stroke
 —  U+2014    8212         …20…  0xE28094   Em Dash
 ď  U+010F     271         …15…    0xC48F   Latin Small Letter D With Caron
 π  U+03C0     960        …192…    0xCF80   Greek Small Letter Pi
 щ  U+0449    1097         …73…    0xD189   Cyrillic Small Letter Shcha
 €°ø—ďπщ