из ASCII в UTF-8 C++

470
26 ноября 2016, 18:57

Здравствуйте. Работаю с архивами: создание, добавление элементов и т.д..

Такая проблема: сторонний метод принимает имя элемента или архива const char*, если имя содержит русские символы, то работает не правильно.

Конвертирую в Utf8, работает, но делаю это через wstring(пока тестирую), который не знаю как заполнять снаружи, например из консоли или какого-нибудь пользовательского интерфейса.

Можно ли обойтись без wstring или заполнять wstring снаружи?

Консоль здесь ни при чём.

Пример того, что делаю я:

std::wstring zipName = L"C:\\Users\\malenkov\\Desktop\\Test\\маша.zip";
/// Конвертация
inline std::string ToUtf8(const std::wstring& str)
{
    static std::wstring_convert<std::codecvt_utf8<wchar_t>> Utf8conv;
    return Utf8conv.to_bytes(str);
}
/// Создание архива
zip_t* zipArchive = ::zip_open(ToUtf8(zipName).c_str(), ZIP_CREATE, &error);

И вот я хочу узнать: как можно задать zipName в рантайме, ведь без wstring, как я понимаю, не обойтись.

Answer 1

Такая проблема: сторонний метод принимает имя элемента или архива const char*, если имя содержит русские символы, то работает не правильно.

Конвертирую в Utf8, работает, но делаю это через wstring(пока тестирую), который не знаю как заполнять снаружи, например из консоли или какого-нибудь пользовательского интерфейса.

Это говорит только о том, что сторонний метод ждет UTF-8, представленное в виде массива 8-битных символов (const char*).

Консоль здесь ни при чём.

Сама консоль возможно не причем (хотя как сказать), а вот какая локаль выставлена - это существенно. Это определяет в каком именно виде будут переданы вводимые данные в рантайме. Например, если вы вводите строку из консоли, работающей в локали ru_RU.CP1251 - то прилетят 8-битные символы, если ru_RU.UTF-8 - на вход прилетит уже сформированная UTF-8 строка.

Таким образом, задача сводится к шагам:

  • Выяснить в каком виде (в какой локали) производиться ввод данных
  • Если 8-битный ввод, предварительно преобразовать в UTF-8
  • Если UTF-8 - просто передать введенное

Но есть важные замечания

Первое

UI предназначается для работы с символами, а не с кодами символов! Что это значит? В различных 8-битовых кодировках (в расширенной части 128-255) определены собственные символы, которые могут отсутствовать в "соседних" 8-битных кодировках. Поэтому "почти" однозначное преобразование возможно только в одном направлении ASCII->UTF-8. Почему "почти"? Например, если взять символы кириллицы, то символ с кодом 0x98 из cp1251 - не имеет аналога ни в Unicode, ни в UTF-8.

Второе

"Широкие символы" в стандарте Unicode 4.0 (ISO/IEC 10646:2003) определяются как compiler-specific, и могут быть даже 8-ми битными. Поэтому, дабы подстраховаться от потерь при преобразованиях, я бы посоветовал вместо std::wstring использовать std::u32string

Третье

Используя STL, конечно же, лучше всего использовать предоставляемые средства перекодировок, это обеспечит большую кроссплатформенность кода. И, тем не менее, если программа должна обеспечивать наиболее полный набор UTF-8, включая разнообразные иероглифические кодировки, можно глянуть внешнюю библиотеку ICU.

Четвертое

Для работы сугубо с кириллицей можно попробовать написать свои процедуры перекодировок. Для C++ я не вижу необходимости. Хотя для чистого Си, в принципе можно. Ниже представлю таблицу, которую собирал по различным стандартам из unicode.org которую в данный момент собираюсь использовать для написания собственной библиотеки для Lua.

Answer 2
Часть-2
Название символа                                       Unicode   Dos    Iso    Koi    Mac    Win     UTF-8
==========================================================================================================
DAGGER................................................   2020      -      -      -     A0     86    E280A0
DARK SHADE............................................   2593     B2      -     92      -      -    E29693
DATA LINK ESCAPE......................................   0010     10     10     10     10     10        10
DEGREE SIGN...........................................   00B0     F8      -     9C     A1     B0      C2B0
DELETE................................................   007F     7F     7F     7F     7F     7F        7F
DEVICE CONTROL FOUR...................................   0014     14     14     14     14     14        14
DEVICE CONTROL ONE....................................   0011     11     11     11     11     11        11
DEVICE CONTROL THREE..................................   0013     13     13     13     13     13        13
DEVICE CONTROL TWO....................................   0012     12     12     12     12     12        12
DIGIT EIGHT...........................................   0038     38     38     38     38     38        38
DIGIT FIVE............................................   0035     35     35     35     35     35        35
DIGIT FOUR............................................   0034     34     34     34     34     34        34
DIGIT NINE............................................   0039     39     39     39     39     39        39
DIGIT ONE.............................................   0031     31     31     31     31     31        31
DIGIT SEVEN...........................................   0037     37     37     37     37     37        37
DIGIT SIX.............................................   0036     36     36     36     36     36        36
DIGIT THREE...........................................   0033     33     33     33     33     33        33
DIGIT TWO.............................................   0032     32     32     32     32     32        32
DIGIT ZERO............................................   0030     30     30     30     30     30        30
DIVISION SIGN.........................................   00F7      -      -     9F     D6      -      C3B7
DOLLAR SIGN...........................................   0024     24     24     24     24     24        24
DOUBLE DAGGER.........................................   2021      -      -      -      -     87    E280A1
DOUBLE LOW-9 QUOTATION MARK...........................   201E      -      -      -     D7     84    E2809E
EM DASH...............................................   2014      -      -      -     D1     97    E2B8BB
EN DASH...............................................   2013      -      -      -     D0     96    E28093
END OF MEDIUM.........................................   0019     19     19     19     19     19        19
END OF TEXT...........................................   0003     03     03     03     03     03        03
END OF TRANSMISSION...................................   0004     04     04     04     04     04        04
END OF TRANSMISSION BLOCK.............................   0017     17     17     17     17     17        17
ENQUIRY...............................................   0005     05     05     05     05     05        05
EQUALS SIGN...........................................   003D     3D     3D     3D     3D     3D        3D
ESCAPE................................................   001B     1B     1B     1B     1B     1B        1B
EURO SIGN.............................................   20AC      -      -      -      -     88    E282AC
EXCLAMATION MARK......................................   0021     21     21     21     21     21        21
FILE SEPARATOR........................................   001C     1C     1C     1C     1C     1C        1C
FORM FEED.............................................   000C     0C     0C     0C     0C     0C        0C
FULL BLOCK............................................   2588     DB      -     8D      -      -    E29688
FULL STOP.............................................   002E     2E     2E     2E     2E     2E        2E
GRAVE ACCENT..........................................   0060     60     60     60     60     60        60
GREATER-THAN OR EQUAL TO..............................   2265      -      -     99     B3      -    E289A5
GREATER-THAN SIGN.....................................   003E     3E     3E     3E     3E     3E        3E
GROUP SEPARATOR.......................................   001D     1D     1D     1D     1D     1D        1D
HORIZONTAL ELLIPSIS...................................   2026      -      -      -     C9     85    E28BAF
HORIZONTAL TABULATION.................................   0009     09     09     09     09     09        09
HYPHEN-MINUS..........................................   002D     2D     2D     2D     2D     2D        2D
INCREMENT.............................................   2206      -      -      -     C6      -    E28886
INFINITY..............................................   221E      -      -      -     B0      -    E2889E
LATIN CAPITAL LETTER A................................   0041     41     41     41     41     41        41
LATIN CAPITAL LETTER B................................   0042     42     42     42     42     42        42
LATIN CAPITAL LETTER C................................   0043     43     43     43     43     43        43
LATIN CAPITAL LETTER D................................   0044     44     44     44     44     44        44
LATIN CAPITAL LETTER E................................   0045     45     45     45     45     45        45
LATIN CAPITAL LETTER F................................   0046     46     46     46     46     46        46
LATIN CAPITAL LETTER G................................   0047     47     47     47     47     47        47
LATIN CAPITAL LETTER H................................   0048     48     48     48     48     48        48
LATIN CAPITAL LETTER I................................   0049     49     49     49     49     49        49
LATIN CAPITAL LETTER J................................   004A     4A     4A     4A     4A     4A        4A
LATIN CAPITAL LETTER K................................   004B     4B     4B     4B     4B     4B        4B
LATIN CAPITAL LETTER L................................   004C     4C     4C     4C     4C     4C        4C
LATIN CAPITAL LETTER M................................   004D     4D     4D     4D     4D     4D        4D
LATIN CAPITAL LETTER N................................   004E     4E     4E     4E     4E     4E        4E
LATIN CAPITAL LETTER O................................   004F     4F     4F     4F     4F     4F        4F
LATIN CAPITAL LETTER P................................   0050     50     50     50     50     50        50
LATIN CAPITAL LETTER Q................................   0051     51     51     51     51     51        51
LATIN CAPITAL LETTER R................................   0052     52     52     52     52     52        52
LATIN CAPITAL LETTER S................................   0053     53     53     53     53     53        53
LATIN CAPITAL LETTER T................................   0054     54     54     54     54     54        54
LATIN CAPITAL LETTER U................................   0055     55     55     55     55     55        55
LATIN CAPITAL LETTER V................................   0056     56     56     56     56     56        56
LATIN CAPITAL LETTER W................................   0057     57     57     57     57     57        57
LATIN CAPITAL LETTER X................................   0058     58     58     58     58     58        58
LATIN CAPITAL LETTER Y................................   0059     59     59     59     59     59        59
LATIN CAPITAL LETTER Z................................   005A     5A     5A     5A     5A     5A        5A
LATIN SMALL LETTER A..................................   0061     61     61     61     61     61        61
LATIN SMALL LETTER B..................................   0062     62     62     62     62     62        62
LATIN SMALL LETTER C..................................   0063     63     63     63     63     63        63
LATIN SMALL LETTER D..................................   0064     64     64     64     64     64        64
LATIN SMALL LETTER E..................................   0065     65     65     65     65     65        65
LATIN SMALL LETTER F..................................   0066     66     66     66     66     66        66
LATIN SMALL LETTER F WITH HOOK........................   0192      -      -      -     C4      -      C692
LATIN SMALL LETTER G..................................   0067     67     67     67     67     67        67
LATIN SMALL LETTER H..................................   0068     68     68     68     68     68        68
LATIN SMALL LETTER I..................................   0069     69     69     69     69     69        69
LATIN SMALL LETTER J..................................   006A     6A     6A     6A     6A     6A        6A
LATIN SMALL LETTER K..................................   006B     6B     6B     6B     6B     6B        6B
LATIN SMALL LETTER L..................................   006C     6C     6C     6C     6C     6C        6C
LATIN SMALL LETTER M..................................   006D     6D     6D     6D     6D     6D        6D
LATIN SMALL LETTER N..................................   006E     6E     6E     6E     6E     6E        6E
LATIN SMALL LETTER O..................................   006F     6F     6F     6F     6F     6F        6F
LATIN SMALL LETTER P..................................   0070     70     70     70     70     70        70
LATIN SMALL LETTER Q..................................   0071     71     71     71     71     71        71
LATIN SMALL LETTER R..................................   0072     72     72     72     72     72        72
LATIN SMALL LETTER S..................................   0073     73     73     73     73     73        73
LATIN SMALL LETTER T..................................   0074     74     74     74     74     74        74
LATIN SMALL LETTER U..................................   0075     75     75     75     75     75        75
LATIN SMALL LETTER V..................................   0076     76     76     76     76     76        76
LATIN SMALL LETTER W..................................   0077     77     77     77     77     77        77
LATIN SMALL LETTER X..................................   0078     78     78     78     78     78        78
LATIN SMALL LETTER Y..................................   0079     79     79     79     79     79        79
LATIN SMALL LETTER Z..................................   007A     7A     7A     7A     7A     7A        7A
LEFT CURLY BRACKET....................................   007B     7B     7B     7B     7B     7B        7B
LEFT DOUBLE QUOTATION MARK............................   201C      -      -      -     D2     93    E2809C
LEFT HALF BLOCK.......................................   258C     DD      -     8E      -      -    E2968C
LEFT PARENTHESIS......................................   0028     28     28     28     28     28        28
LEFT SINGLE QUOTATION MARK............................   2018      -      -      -     D4     91    E28098
LEFT SQUARE BRACKET...................................   005B     5B     5B     5B     5B     5B        5B
LEFT-POINTING DOUBLE ANGLE QUOTATION MARK.............   00AB      -      -      -     C7     AB      C2AB
LESS-THAN OR EQUAL TO.................................   2264      -      -     98     B2      -    E289A4
LESS-THAN SIGN........................................   003C     3C     3C     3C     3C     3C        3C
LIGHT SHADE...........................................   2591     B0      -     90      -      -    E29691
LINE FEED.............................................   000A     0A     0A     0A     0A     0A        0A
LOW LINE..............................................   005F     5F     5F     5F     5F     5F        5F
LOWER HALF BLOCK......................................   2584     DC      -     8C      -      -    E29684
MEDIUM SHADE..........................................   2592     B1      -     91      -      -    E29692
MICRO SIGN............................................   00B5      -      -      -     B5     B5      C2B5
MIDDLE DOT............................................   00B7     FA      -     9E      -     B7      C2B7
NEGATIVE ACKNOWLEDGE..................................   0015     15     15     15     15     15        15
NO-BREAK SPACE........................................   00A0     FF     A0     9A     CA     A0      C2A0
NOT EQUAL TO..........................................   2260      -      -      -     AD      -    E289A0
NOT SIGN..............................................   00AC      -      -      -     C2     AC      C2AC
NULL..................................................   0000     00     00     00     00     00        00
NUMBER SIGN...........................................   0023     23     23     23     23     23        23
NUMERO SIGN...........................................   2116     FC     F0      -     DC     B9    E28496
PARTIAL DIFFERENTIAL..................................   2202      -      -      -     B6      -    E28882
PER MILLE SIGN........................................   2030      -      -      -      -     89    E280B0
PERCENT SIGN..........................................   0025     25     25     25     25     25        25
PILCROW SIGN..........................................   00B6      -      -      -     A6     B6      C2B6
PLUS SIGN.............................................   002B     2B     2B     2B     2B     2B        2B
PLUS-MINUS SIGN.......................................   00B1      -      -      -     B1     B1      C2B1
POUND SIGN............................................   00A3      -      -      -     A3      -      C2A3
QUESTION MARK.........................................   003F     3F     3F     3F     3F     3F        3F
QUOTATION MARK........................................   0022     22     22     22     22     22        22
RECORD SEPARATOR......................................   001E     1E     1E     1E     1E     1E        1E
REGISTERED SIGN.......................................   00AE      -      -      -     A8     AE      C2AE
REVERSE SOLIDUS.......................................   005C     5C     5C     5C     5C     5C        5C
RIGHT CURLY BRACKET...................................   007D     7D     7D     7D     7D     7D        7D
RIGHT DOUBLE QUOTATION MARK...........................   201D      -      -      -     D3     94    E2809D
RIGHT HALF BLOCK......................................   2590     DE      -     8F      -      -    E29690
RIGHT PARENTHESIS.....................................   0029     29     29     29     29     29        29
RIGHT SINGLE QUOTATION MARK...........................   2019      -      -      -     D5     92    E28099
RIGHT SQUARE BRACKET..................................   005D     5D     5D     5D     5D     5D        5D
RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK............   00BB      -      -      -     C8     BB      C2BB
SECTION SIGN..........................................   00A7      -     FD      -     A4     A7      C2A7
SEMICOLON.............................................   003B     3B     3B     3B     3B     3B        3B
SHIFT IN..............................................   000F     0F     0F     0F     0F     0F        0F
SHIFT OUT.............................................   000E     0E     0E     0E     0E     0E        0E
SINGLE LEFT-POINTING ANGLE QUOTATION MARK.............   2039      -      -      -      -     8B    E280B9
SINGLE LOW-9 QUOTATION MARK...........................   201A      -      -      -      -     82    E2809A
SINGLE RIGHT-POINTING ANGLE QUOTATION MARK............   203A      -      -      -      -     9B    E280BA
SOFT HYPHEN...........................................   00AD      -     AD      -      -     AD      C2AD
SOLIDUS...............................................   002F     2F     2F     2F     2F     2F        2F
SPACE.................................................   0020     20     20     20     20     20        20
SQUARE ROOT...........................................   221A     FB      -     96     C3      -    E2889A
START OF HEADING......................................   0001     01     01     01     01     01        01
START OF TEXT.........................................   0002     02     02     02     02     02        02
SUBSTITUTE............................................   001A     1A     1A     1A     1A     1A        1A
SUPERSCRIPT TWO.......................................   00B2      -      -     9D      -      -      C2B2
SYNCHRONOUS IDLE......................................   0016     16     16     16     16     16        16
TILDE.................................................   007E     7E     7E     7E     7E     7E        7E
TOP HALF INTEGRAL.....................................   2320      -      -     93      -      -    E28CA0
TRADE MARK SIGN.......................................   2122      -      -      -     AA     99    E284A2
UNDEFINED.............................................   ----      -      -      -      -     98    ------
UNIT SEPARATOR........................................   001F     1F     1F     1F     1F     1F        1F
UPPER HALF BLOCK......................................   2580     DF      -     8B      -      -    E29680
VERTICAL LINE.........................................   007C     7C     7C     7C     7C     7C        7C
VERTICAL TABULATION...................................   000B     0B     0B     0B     0B     0B        0B
Answer 3

Сама таблица кириллических символов

Dos (cp866)
Win (windows-1251)
Koi (koi8-r)
Iso (ISO 8859-5)
Mac (Code Page 10007 Macintosh Cyrillic)
Utf (UTF-8 Cyrillic subset)

Часть-1

Название символа                                       Unicode   Dos    Iso    Koi    Mac    Win     UTF-8
==========================================================================================================
<CONTROL>.............................................   009F      -     9F      -      -      -      C29F
ACKNOWLEDGE...........................................   0006     06     06     06     06     06        06
ALMOST EQUAL TO.......................................   2248      -      -     97     C5      -    E28988
AMPERSAND.............................................   0026     26     26     26     26     26        26
APOSTROPHE............................................   0027     27     27     27     27     27        27
ASTERISK..............................................   002A     2A     2A     2A     2A     2A        2A
BACKSPACE.............................................   0008     08     08     08     08     08        08
BELL..................................................   0007     07     07     07     07     07        07
BLACK SQUARE..........................................   25A0     FE      -     94      -      -    E296A0
BOTTOM HALF INTEGRAL..................................   2321      -      -     9B      -      -    E28CA1
BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL...............   2566     CB      -     B8      -      -    E295A6
BOX DRAWINGS DOUBLE DOWN AND LEFT.....................   2557     BB      -     A8      -      -    E29597
BOX DRAWINGS DOUBLE DOWN AND RIGHT....................   2554     C9      -     A5      -      -    E29594
BOX DRAWINGS DOUBLE HORIZONTAL........................   2550     CD      -     A0      -      -    E29590
BOX DRAWINGS DOUBLE UP AND HORIZONTAL.................   2569     CA      -     BB      -      -    E295A9
BOX DRAWINGS DOUBLE UP AND LEFT.......................   255D     BC      -     AE      -      -    E2959D
BOX DRAWINGS DOUBLE UP AND RIGHT......................   255A     C8      -     AB      -      -    E2959A
BOX DRAWINGS DOUBLE VERTICAL..........................   2551     BA      -     A1      -      -    E29591
BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL...........   256C     CE      -     BE      -      -    E295AC
BOX DRAWINGS DOUBLE VERTICAL AND LEFT.................   2563     B9      -     B5      -      -    E295A3
BOX DRAWINGS DOUBLE VERTICAL AND RIGHT................   2560     CC      -     B1      -      -    E295A0
BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE........   2565     D2      -     B7      -      -    E295A5
BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE..............   2556     B7      -     A7      -      -    E29596
BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE.............   2553     D6      -     A4      -      -    E29593
BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE........   2564     D1      -     B6      -      -    E295A4
BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE..............   2555     B8      -     A6      -      -    E29595
BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE.............   2552     D5      -     A2      -      -    E29592
BOX DRAWINGS LIGHT DOWN AND HORIZONTAL................   252C     C2      -     88      -      -    E294AC
BOX DRAWINGS LIGHT DOWN AND LEFT......................   2510     BF      -     83      -      -    E29490
BOX DRAWINGS LIGHT DOWN AND RIGHT.....................   250C     DA      -     82      -      -    E2948C
BOX DRAWINGS LIGHT HORIZONTAL.........................   2500     C4      -     80      -      -    E29480
BOX DRAWINGS LIGHT UP AND HORIZONTAL..................   2534     C1      -     89      -      -    E294B4
BOX DRAWINGS LIGHT UP AND LEFT........................   2518     D9      -     85      -      -    E29498
BOX DRAWINGS LIGHT UP AND RIGHT.......................   2514     C0      -     84      -      -    E29494
BOX DRAWINGS LIGHT VERTICAL...........................   2502     B3      -     81      -      -    E29482
BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL............   253C     C5      -     8A      -      -    E294BC
BOX DRAWINGS LIGHT VERTICAL AND LEFT..................   2524     B4      -     87      -      -    E294A4
BOX DRAWINGS LIGHT VERTICAL AND RIGHT.................   251C     C3      -     86      -      -    E2949C
BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE..........   2568     D0      -     BA      -      -    E295A8
BOX DRAWINGS UP DOUBLE AND LEFT SINGLE................   255C     BD      -     AD      -      -    E2959C
BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE...............   2559     D3      -     AA      -      -    E29599
BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE..........   2567     CF      -     B9      -      -    E295A7
BOX DRAWINGS UP SINGLE AND LEFT DOUBLE................   255B     BE      -     AC      -      -    E2959B
BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE...............   2558     D4      -     A9      -      -    E29598
BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE....   256B     D7      -     BD      -      -    E295AB
BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE..........   2562     B6      -     B4      -      -    E295A2
BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE.........   255F     C7      -     B0      -      -    E2959F
BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE....   256A     D8      -     BC      -      -    E295AA
BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE..........   2561     B5      -     B2      -      -    E295A1
BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE.........   255E     C6      -     AF      -      -    E2959E
BROKEN BAR............................................   00A6      -      -      -      -     A6      C2A6
BULLET................................................   2022      -      -      -     A5     95    E280A2
BULLET OPERATOR.......................................   2219     F9      -     95      -      -    E28899
CANCEL................................................   0018     18     18     18     18     18        18
CARRIAGE RETURN.......................................   000D     0D     0D     0D     0D     0D        0D
CENT SIGN.............................................   00A2      -      -      -     A2      -      C2A2
CIRCUMFLEX ACCENT.....................................   005E     5E     5E     5E     5E     5E        5E
COLON.................................................   003A     3A     3A     3A     3A     3A        3A
COMMA.................................................   002C     2C     2C     2C     2C     2C        2C
COMMERCIAL AT.........................................   0040     40     40     40     40     40        40
COPYRIGHT SIGN........................................   00A9      -      -     BF     A9     A9      C2A9
CURRENCY SIGN.........................................   00A4     FD      -      -     FF     A4      C2A4
CYRILLIC CAPITAL LETTER A.............................   0410     80     B0     E1     80     C0      D090
CYRILLIC CAPITAL LETTER BE............................   0411     81     B1     E2     81     C1      D091
CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I......   0406      -     A6      -     A7     B2      D086
CYRILLIC CAPITAL LETTER CHE...........................   0427     97     C7     FE     97     D7      D0A7
CYRILLIC CAPITAL LETTER DE............................   0414     84     B4     E4     84     C4      D094
CYRILLIC CAPITAL LETTER DJE...........................   0402      -     A2      -     AB     80      D082
CYRILLIC CAPITAL LETTER DZE...........................   0405      -     A5      -     C1     BD      D085
CYRILLIC CAPITAL LETTER DZHE..........................   040F      -     AF      -     DA     8F      D08F
CYRILLIC CAPITAL LETTER E.............................   042D     9D     CD     FC     9D     DD      D0AD
CYRILLIC CAPITAL LETTER EF............................   0424     94     C4     E6     94     D4      D0A4
CYRILLIC CAPITAL LETTER EL............................   041B     8B     BB     EC     8B     CB      D09B
CYRILLIC CAPITAL LETTER EM............................   041C     8C     BC     ED     8C     CC      D09C
CYRILLIC CAPITAL LETTER EN............................   041D     8D     BD     EE     8D     CD      D09D
CYRILLIC CAPITAL LETTER ER............................   0420     90     C0     F2     90     D0      D0A0
CYRILLIC CAPITAL LETTER ES............................   0421     91     C1     F3     91     D1      D0A1
CYRILLIC CAPITAL LETTER GHE...........................   0413     83     B3     E7     83     C3      D093
CYRILLIC CAPITAL LETTER GHE WITH UPTURN...............   0490      -      -      -      -     A5      D290
CYRILLIC CAPITAL LETTER GJE...........................   0403      -     A3      -     AE     81      D083
CYRILLIC CAPITAL LETTER HA............................   0425     95     C5     E8     95     D5      D0A5
CYRILLIC CAPITAL LETTER HARD SIGN.....................   042A     9A     CA     FF     9A     DA      D0AA
CYRILLIC CAPITAL LETTER I.............................   0418     88     B8     E9     88     C8      D098
CYRILLIC CAPITAL LETTER IE............................   0415     85     B5     E5     85     C5      D095
CYRILLIC CAPITAL LETTER IO............................   0401     F0     A1     B3     DD     A8      D081
CYRILLIC CAPITAL LETTER JE............................   0408      -     A8      -     B7     A3      D088
CYRILLIC CAPITAL LETTER KA............................   041A     8A     BA     EB     8A     CA      D09A
CYRILLIC CAPITAL LETTER KJE...........................   040C      -     AC      -     CD     8D      D08C
CYRILLIC CAPITAL LETTER LJE...........................   0409      -     A9      -     BC     8A      D089
CYRILLIC CAPITAL LETTER NJE...........................   040A      -     AA      -     BE     8C      D08A
CYRILLIC CAPITAL LETTER O.............................   041E     8E     BE     EF     8E     CE      D09E
CYRILLIC CAPITAL LETTER PE............................   041F     8F     BF     F0     8F     CF      D09F
CYRILLIC CAPITAL LETTER SHA...........................   0428     98     C8     FB     98     D8      D0A8
CYRILLIC CAPITAL LETTER SHCHA.........................   0429     99     C9     FD     99     D9      D0A9
CYRILLIC CAPITAL LETTER SHORT I.......................   0419     89     B9     EA     89     C9      D099
CYRILLIC CAPITAL LETTER SHORT U.......................   040E     F6     AE      -     D8     A1      D08E
CYRILLIC CAPITAL LETTER SOFT SIGN.....................   042C     9C     CC     F8     9C     DC      D0AC
CYRILLIC CAPITAL LETTER TE............................   0422     92     C2     F4     92     D2      D0A2
CYRILLIC CAPITAL LETTER TSE...........................   0426     96     C6     E3     96     D6      D0A6
CYRILLIC CAPITAL LETTER TSHE..........................   040B      -     AB      -     CB     8E      D08B
CYRILLIC CAPITAL LETTER U.............................   0423     93     C3     F5     93     D3      D0A3
CYRILLIC CAPITAL LETTER UKRAINIAN IE..................   0404     F2     A4      -     B8     AA      D084
CYRILLIC CAPITAL LETTER VE............................   0412     82     B2     F7     82     C2      D092
CYRILLIC CAPITAL LETTER YA............................   042F     9F     CF     F1     9F     DF      D0AF
CYRILLIC CAPITAL LETTER YERU..........................   042B     9B     CB     F9     9B     DB      D0AB
CYRILLIC CAPITAL LETTER YI............................   0407     F4     A7      -     BA     AF      D087
CYRILLIC CAPITAL LETTER YU............................   042E     9E     CE     E0     9E     DE      D0AE
CYRILLIC CAPITAL LETTER ZE............................   0417     87     B7     FA     87     C7      D097
CYRILLIC CAPITAL LETTER ZHE...........................   0416     86     B6     F6     86     C6      D096
CYRILLIC SMALL LETTER A...............................   0430     A0     D0     C1     E0     E0      D0B0
CYRILLIC SMALL LETTER BE..............................   0431     A1     D1     C2     E1     E1      D0B1
CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I........   0456      -     F6      -     B4     B3      D196
CYRILLIC SMALL LETTER CHE.............................   0447     E7     E7     DE     F7     F7      D187
CYRILLIC SMALL LETTER DE..............................   0434     A4     D4     C4     E4     E4      D0B4
CYRILLIC SMALL LETTER DJE.............................   0452      -     F2      -     AC     90      D192
CYRILLIC SMALL LETTER DZE.............................   0455      -     F5      -     CF     BE      D195
CYRILLIC SMALL LETTER DZHE............................   045F      -     FF      -     DB     9F      D19F
CYRILLIC SMALL LETTER E...............................   044D     ED     ED     DC     FD     FD      D18D
CYRILLIC SMALL LETTER EF..............................   0444     E4     E4     C6     F4     F4      D184
CYRILLIC SMALL LETTER EL..............................   043B     AB     DB     CC     EB     EB      D0BB
CYRILLIC SMALL LETTER EM..............................   043C     AC     DC     CD     EC     EC      D0BC
CYRILLIC SMALL LETTER EN..............................   043D     AD     DD     CE     ED     ED      D0BD
CYRILLIC SMALL LETTER ER..............................   0440     E0     E0     D2     F0     F0      D180
CYRILLIC SMALL LETTER ES..............................   0441     E1     E1     D3     F1     F1      D181
CYRILLIC SMALL LETTER GHE.............................   0433     A3     D3     C7     E3     E3      D0B3
CYRILLIC SMALL LETTER GHE WITH UPTURN.................   0491      -      -      -      -     B4      D291
CYRILLIC SMALL LETTER GJE.............................   0453      -     F3      -     AF     83      D193
CYRILLIC SMALL LETTER HA..............................   0445     E5     E5     C8     F5     F5      D185
CYRILLIC SMALL LETTER HARD SIGN.......................   044A     EA     EA     DF     FA     FA      D18A
CYRILLIC SMALL LETTER I...............................   0438     A8     D8     C9     E8     E8      D0B8
CYRILLIC SMALL LETTER IE..............................   0435     A5     D5     C5     E5     E5      D0B5
CYRILLIC SMALL LETTER IO..............................   0451     F1     F1     A3     DE     B8      D191
CYRILLIC SMALL LETTER JE..............................   0458      -     F8      -     C0     BC      D198
CYRILLIC SMALL LETTER KA..............................   043A     AA     DA     CB     EA     EA      D0BA
CYRILLIC SMALL LETTER KJE.............................   045C      -     FC      -     CE     9D      D19C
CYRILLIC SMALL LETTER LJE.............................   0459      -     F9      -     BD     9A      D199
CYRILLIC SMALL LETTER NJE.............................   045A      -     FA      -     BF     9C      D19A
CYRILLIC SMALL LETTER O...............................   043E     AE     DE     CF     EE     EE      D0BE
CYRILLIC SMALL LETTER PE..............................   043F     AF     DF     D0     EF     EF      D0BF
CYRILLIC SMALL LETTER SHA.............................   0448     E8     E8     DB     F8     F8      D188
CYRILLIC SMALL LETTER SHCHA...........................   0449     E9     E9     DD     F9     F9      D189
CYRILLIC SMALL LETTER SHORT I.........................   0439     A9     D9     CA     E9     E9      D0B9
CYRILLIC SMALL LETTER SHORT U.........................   045E     F7     FE      -     D9     A2      D19E
CYRILLIC SMALL LETTER SOFT SIGN.......................   044C     EC     EC     D8     FC     FC      D18C
CYRILLIC SMALL LETTER TE..............................   0442     E2     E2     D4     F2     F2      D182
CYRILLIC SMALL LETTER TSE.............................   0446     E6     E6     C3     F6     F6      D186
CYRILLIC SMALL LETTER TSHE............................   045B      -     FB      -     CC     9E      D19B
CYRILLIC SMALL LETTER U...............................   0443     E3     E3     D5     F3     F3      D183
CYRILLIC SMALL LETTER UKRAINIAN IE....................   0454     F3     F4      -     B9     BA      D194
CYRILLIC SMALL LETTER VE..............................   0432     A2     D2     D7     E2     E2      D0B2
CYRILLIC SMALL LETTER YA..............................   044F     EF     EF     D1     DF     FF      D18F
CYRILLIC SMALL LETTER YERU............................   044B     EB     EB     D9     FB     FB      D18B
CYRILLIC SMALL LETTER YI..............................   0457     F5     F7      -     BB     BF      D197
CYRILLIC SMALL LETTER YU..............................   044E     EE     EE     C0     FE     FE      D18E
CYRILLIC SMALL LETTER ZE..............................   0437     A7     D7     DA     E7     E7      D0B7
CYRILLIC SMALL LETTER ZHE.............................   0436     A6     D6     D6     E6     E6      D0B6
READ ALSO
MS Visual Studio 2015 BEX nvd3d9wrap.dll

MS Visual Studio 2015 BEX nvd3d9wrap.dll

Возникает следующая ошибка при выполнении некоторых проектов в VS 2013/2015

301
GetVersionEx работает неправильно

GetVersionEx работает неправильно

Под Windows 10 выдаёт значение 6, хотя должно 10Почему так?

303
Как передать шаблон функции в другую функцию?

Как передать шаблон функции в другую функцию?

Как правильно написать функцию test, чтобы ей в качестве аргумента (либо шаблонного параметра - не важно) можно было передать любую из функций...

242
Как отредактировать .idb файл?

Как отредактировать .idb файл?

Есть коммерческое ПО, при каждом запуске оно подключается к файлу базы данных, файл именуется как uchetatiidb

257