2010-11-09 14 views
7

que tienen problemas con los archivos que codifican en Visual Studio 2008. Durante la compilación que estoy recibiendo este tipo de errores:problemas de codificación de Visual Studio

alt text

Cuando estoy tratando de abrir el archivo en particular, occures error de codificación, aparecerá la ventana:

alt text

Por DEFAULT-Detección automática está establecido. Cuando cambio la opción de codificación a UTF-8, todo funciona. Si abro cada archivo problemático en mi proyecto usando la codificación UTF-8, el proyecto comienza a compilarse. El problema es que tengo demasiados archivos y es ridículo abrir cada archivo y configurar la codificación en UTF-8. ¿Hay alguna manera de hacer esto de una manera rápida?

ajustes de Mi VS son:

alt text

estoy usando Windows Server 2008 R2.

ACTUALIZACIÓN:

Para Hans Passant y Noah Richards. Gracias por la interacción. Recientemente cambié mi sistema operativo para que todo esté actualizado. También descargué una solución nueva del control de código fuente.

en la configuración regional del sistema operativo he cambiado configuración regional del sistema a Polaco (Polonia):

alt text

En VS he cambiado la configuración internacional de la misma como ventanas:

alt text

El problema aún no está resuelto.

Al abrir algunos archivos .cs utilizando la detección automática de codificación, y después comprobar Archivos -> Opciones avanzadas para guardar ..., algunos de los archivos tienen este .CS página de códigos 1250:

alt text

pero internamente miradas siguiente:

alt text

es por cable, porque cuando puedo comprobar propiedades de tales archivos en particular en con fuente trol, que parece tener codificación UTF-8 conjunto:

alt text

No entiendo este desajuste.

Todos los demás archivos tienen codificación UTF-8:

alt text

y abre correctamente. Básicamente no tengo idea de qué está yendo mal porque, por lo que sé, mi amigo tiene las mismas opciones que yo, y el mismo proyecto compila para él correctamente. Pero hasta ahora él felizmente no ha encontrado problemas de codificación.

+0

No puede tener 'demasiados archivos' y no ha tenido este problema antes. ¿Qué cambió? ¿Has cambiado a esta máquina recientemente? ¿Se ha cambiado la página de códigos del sistema? ¿Este proyecto fue importado de VS2005? ¿Cambiar a un SCCS gimpy? Documenta tu problema mejor. –

Respuesta

2

Esa mayúscula A con circunflex me dice que el archivo es UTF-8 (si miras con un editor hexadecimal probablemente verás que los bytes son C2 A0). Ese es un espacio sin interrupciones en UTF-8.

Visual Studio no detecta la codificación porque (lo más probable) no hay suficientes caracteres ASCII altos en el archivo para ayudar con una detección confiable.

Además, no hay BOM (Marca de orden de bytes). Eso ayudaría con la detección (esta es la "firma" en la descripción "UTF-8 con firma").

Qué puede hacer: agregue la lista de materiales a todos los archivos que no la tengan. ¿Cómo agregar? Cree un archivo con una lista de materiales únicamente (archivo vacío en el Bloc de notas, Guardar como, seleccione UTF-8 como codificación). Tendrá 3 bytes de longitud (EF BB BF). Puede copiar que al inicio de cada archivo que falta la lista de materiales:

copy /b/v BOM.txt + YourFile.cs YourFile_Ok.cs 
    ren YourFile.cs YourFile_Org.cs 
    ren YourFile_Ok.cs YourFile.cs 

Asegúrese de que hay un + entre el nombre del archivo de lista de materiales y el del archivo original.

Pruébelo en uno o dos archivos y, si funciona, puede crear algunos archivos por lotes para hacerlo. O una aplicación pequeña de C# (dado que usted es un programador de C#), que puede detectar si el archivo ya tiene una lista de materiales o no, para que no la agregue dos veces. Por supuesto, puede hacer esto en casi cualquier cosa, desde Perl a PowerShell a C++ :-)

+0

Gracias por eso, buena solución. Todavía parece estar conectado que mi amigo no se ha enfrentado a ese problema ya que tenemos el mismo sistema operativo, los mismos archivos fuente (del mismo disco) y creo que la misma configuración. Sin embargo, este truco me ayuda y es un buen consejo para el futuro. Saludos. – jwaliszko

0

Una vez que haya abierto los archivos en modo UTF-8, puede intentar cambiar las Opciones de guardado avanzadas para el archivo y guardarlo (como UTF-8 con firma, si cree que estos archivos deberían ser UTF-8) ?

La detección de codificación de detección automática es el mejor esfuerzo, por lo que es probable que algo en el archivo haga que se detecte como algo distinto a UTF-8, como tener solo caracteres ASCII en el primer kilobyte del archivo , o tener una lista de materiales que indique que el archivo es distinto de UTF-8. Volver a guardar el archivo como UTF-8 con firma debería (con suerte) corregir eso.

Si continúa ocurriendo después de eso, hágamelo saber, y podemos intentar rastrear qué está causando que se creen/guarden de esa manera en primer lugar.

Cuestiones relacionadas