За Microsoft Visual Studio 2008 версия на тази статия вижте 980263.
Симптоми
Да разгледаме следния сценарий:
-
Създаване на Visual C++ проект в Microsoft Visual Studio 2010 г.
-
Файл в проекта инициализира тясно низ числа. Тези числа низ съдържа азиатски знаци и не започват с буквата "Л."
-
Файлът е записан с помощта на UTF-8 кодиране.
В този случай когато компилирате проекта, низ числа са погрешно от компилатор. Освен това се сблъсквате с един от следните проблеми:
-
Когато файлът съдържа байт-знак (КИ), успешна операция компилация. Обаче низ числа са все още показват неправилно в приложението генерира. Освен това можете да получите следното предупредително съобщение, когато компилирате проекта:
Предупреждение C4566: Знаци, представена от световно-знаково име "xx" не може да представлява текущата кодова страница.
-
Компилация операцията е неуспешна. Освен това можете да получите следното съобщение за грешка, когато компилирате проекта:
Грешка C2078: Твърде много initializers
-
Компилация операцията е неуспешна. Освен това можете да получите следното предупредително съобщение, когато компилирате проекта:
C4129 предупреждение: "характер": неразпознат знак бягство последователност.
Причина
Този проблем възниква, защото компилатор предполага, че числа във файла може да се интерпретира като водещ байт MBCS кодиране вместо като еднобайтови Unicode. Поради този проблем компилатор неправилно превежда файла.
Решение
За да разрешите този проблем, трябва да приложите тази актуална корекция на компютъра, на който се събират проекта. След това запишете файла с байт-знак и добавете "pragma" директива преди числа низ в изходния файл:
#pragma execution_character_set("utf-8")
Забележка Настоящата "pragma" задава превод единица за файла източник, докато настоящата "pragma" се заменя с друг "pragma" директива.
Повече информация относно тази спешна корекция
Информация за актуалната корекция
Вече се предлага от Microsoft предоставя поддържана актуална корекция. Но тя е предназначена да коригира само проблема, описан в тази статия. Прилагайте корекцията само към системи, изпитващи този конкретен проблем. Възможно е провеждането на допълнителни тестове на тази актуална корекция. Следователно ако не сте силно засегнати от този проблем, препоръчваме да изчакате следващия, който ще съдържа тази корекция. За незабавно решаване на проблема, се обърнете към услугите за поддръжка на клиенти на Microsoft да получите актуалната корекция. За пълен списък на телефонните номера на отдела за поддръжка на Microsoft и информация за цените на поддръжката посетете следния уеб сайт на Microsoft:
http://support.microsoft.com/contactus/?ws=supportЗабележка При специални случаи таксите, които обикновено се начисляват за свързани с поддръжката разговори, могат да бъдат отменени, ако професионалистът по поддръжка на Microsoft определи, че проблемът може да бъде решен със специфична актуализация. Стандартните такси за поддръжката ще важат за допълнителни въпроси, свързани с нея, както и за проблеми, които не спадат към съответната актуализация.
Необходими условия:
Трябва да имате Microsoft Visual Studio 2010, за да приложите тази актуална корекция.
Информация за рестартиране
Не трябва да рестартирате компютъра, след като приложите тази актуална корекция.
Файлова информация
Англоезичната версия на тази спешна корекция има файлови атрибути (или по-нови файлови атрибути), които са изброени в следващата таблица. Датите и часовете за тези файлове са изброени в координирано световно време (UTC). При преглед на информацията за файла, преобразувана в местно време. За да намерите разликата между UTC и местното време, използвайте раздела часова зона в елемента " Дата и час " в контролния панел.
Име на файл |
Версия на файла |
Размер на файла |
Дата |
Време |
Платформа |
---|---|---|---|---|---|
C1.dll |
16.0.30319.351 |
658,240 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
723,776 |
23-Aug-2010 |
06:45 |
x86 |
C1.dll |
16.0.30319.351 |
899,400 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,286,920 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,428,232 |
23-Aug-2010 |
06:45 |
x86 |
C1xx.dll |
16.0.30319.351 |
2,659,664 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
201,032 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
202,568 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
219,976 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
221,000 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
290,632 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
291,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
292,680 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
293,704 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,392 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
408,904 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
450,376 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,104 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
460,616 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,024 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
478,536 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
483,656 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
484,168 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
486,728 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
487,240 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
491,848 |
23-Aug-2010 |
06:45 |
x86 |
Clui.dll |
16.0.30319.351 |
492,360 |
23-Aug-2010 |
06:45 |
x86 |
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".