Para obter uma versão do Microsoft Visual Studio 2008 do presente artigo, consulte 980263.
Sintomas
Considere o seguinte cenário:
-
Criar um projecto de Visual C++ no Microsoft Visual Studio 2010.
-
Um ficheiro do projecto inicializa estreito cadeias literais. Estas cadeias literais contenham caracteres asiáticos e não têm como prefixo com a letra "l".
-
O ficheiro foi guardado utilizando a codificação UTF-8.
Neste cenário, quando compila o projecto, as cadeias literais são interpretado incorrectamente pelo compilador. Além disso, se deparar com um dos seguintes problemas:
-
Quando o ficheiro contiver uma marca de ordem de bytes (BOM), a operação de compilação é efectuada com êxito. No entanto, as cadeias literais são ainda ser apresentados incorrectamente na aplicação gerada. Além disso, poderá receber a seguinte mensagem de aviso quando compilar o projecto:
Aviso C4566: Carácter representado por universal-carácter-name 'xx' não pode ser representado na página de códigos actual.
-
A operação de compilação falha. Além disso, poderá receber a seguinte mensagem de erro quando compilar o projecto:
Erro C2078: Demasiados inicializadores
-
A operação de compilação falha. Além disso, poderá receber a seguinte mensagem de aviso quando compilar o projecto:
Aviso C4129: 'carácter': não reconhecido a sequência de escape de carácter.
Causa
Este problema ocorre porque o compilador assume que os literais no ficheiro podem ser interpretados como o byte de MBCS codificação em vez de como Unicode de byte único. Devido a este problema, o compilador incorrectamente converte o ficheiro.
Resolução
Para resolver este problema, aplique esta correcção para o computador em que compilar o projecto. Em seguida, guarde o ficheiro com uma marca de ordem de bytes e, em seguida, adicione a seguinte directiva de "pragma" antes das cadeias literais no ficheiro de origem:
#pragma execution_character_set("utf-8")
Nota A presente directiva "pragma" define a unidade de tradução para o ficheiro de origem até que a presente directiva "pragma" é substituída por outra directiva "pragma".
Obter mais informações sobre esta correcção
Informações sobre correção
Agora tem uma correcção suportada disponível na Microsoft. Contudo, destina-se apenas a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde o próximo que contenha esta correcção. Para resolver este problema imediatamente, contacte o suporte técnico da Microsoft para obter a correcção. Para obter uma lista completa dos números de telefone do suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=supportNota Em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados se um Técnico de Suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos normais do suporte serão aplicados a problemas e questões de suporte adicionais que não sejam qualificáveis para a atualização específica em questão.
Pré-requisitos
Tem de ter o Microsoft Visual Studio 2010 instalado para aplicar esta correcção.
Informações sobre reinício
Não é necessário reiniciar o computador depois de aplicar esta correcção.
Informações de ficheiro
A versão inglesa desta correção tem os atributos de ficheiro listados na tabela que se segue (ou atributos de ficheiro posteriores). As datas e horas destes ficheiros estão listadas no formato de Hora Universal Coordenada (UTC). Quando visualizar as informações dos ficheiros, estas serão convertidas na hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador Fuso horário no item data e hora no painel de controlo.
Nome do ficheiro |
Versão do ficheiro |
Tamanho do ficheiro |
Data |
Hora |
Plataforma |
---|---|---|---|---|---|
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 |
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".