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 |
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".