КОРЕКЦИЯ: Низ числа са погрешно от Visual C++ компилатор в Visual Studio 2010, когато низ числа използвайте UTF-8 кодиране и съдържат азиатски знаци

За 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, изброени в раздела "Отнася се за".

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×