Microsoft Visual Studio 2008 версия этой статьи содержатся в разделе 980263.

Проблемы

Рассмотрим следующий сценарий.

  • Создание проекта Visual C++ в Microsoft Visual Studio 2010.

  • Файл в проекте инициализирует узкий строковых литералов. Эти строковые литералы, содержащие знаков азиатских языков и не начинаются с буквы «м».

  • Файл был сохранен в кодировке UTF-8.

В этом случае при компиляции проекта, строковые литералы интерпретируются ошибочно компилятором. Кроме того возникнет одна из следующих проблем:

  • Если файл содержит метку порядка байтов (BOM), компиляции операция выполнена успешно. Однако строковые литералы продолжают отображаться неправильно в создаваемое приложение. Кроме того может появиться сообщение об ошибке при компиляции проекта:

    Предупреждение C4566: Символ, представленный имя универсального символа 'xx' невозможно представить в текущей кодовой странице.

  • Сбой компиляции. Кроме того может появиться следующее сообщение об ошибке при компиляции проекта:

    Ошибки C2078: Слишком много инициализаторов

  • Сбой компиляции. Кроме того может появиться сообщение об ошибке при компиляции проекта:

    Предупреждения C4129: «символ»: неизвестная escape-последовательность.

Причина

Эта проблема возникает, поскольку компилятор предполагает, что литералы в файле может интерпретироваться как старший байт Многобайтовой кодировки вместо однобайтовой кодировке Юникод. Из-за этой проблемы компилятор неправильно преобразует файл.

Решение

Чтобы устранить эту проблему, примените данное исправление на компьютере, на котором компилируется проект. Затем сохраните файл с метка порядка следования байтов и затем добавьте следующую директиву «pragma» перед строковые литералы в исходном файле:

#pragma execution_character_set("utf-8")

Примечание. Эта директива «прагма» задает единицу перевода для исходного файла, пока эта директива «прагма» заменяется другая директива «прагма».

Дополнительные сведения об этом исправлении

Сведения об исправлении

Исправление от корпорации Майкрософт доступно. Тем не менее он предназначен только для устранения проблемы, описанной в этой статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка. Это исправление может проходить дополнительное тестирование. Таким образом Если вы не подвержены серьезно эту проблему, рекомендуется дождаться следующего, содержащего это исправление. Для немедленного решения этой проблемы обратитесь в службу поддержки пользователей Майкрософт для получения исправления. Полный список телефонов службы поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-сайт корпорации Майкрософт:

http://support.microsoft.com/contactus/?ws=supportПримечание. В особых случаях оплата, предусмотренная за обращение в службу поддержки может быть отменена, если специалист службы технической поддержки Майкрософт определит, что обновление будет решением проблемы. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.

Предварительные условия

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

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?

Что повлияло на вашу оценку?

Добавите что-нибудь? Это необязательно

Спасибо за ваш отзыв!

×