Usando la utilidad de la consola DISM.

💖 ¿Te gusta? Comparte el enlace con tus amigos.

Hola, queridos lectores del blog. Hoy hablaremos con usted sobre de dónde provienen los krakozyabrs en un sitio web y en los programas, qué codificaciones de texto existen y cuáles deben usarse. Echemos un vistazo más de cerca a la historia de su desarrollo, comenzando desde ASCII básico, así como sus versiones extendidas CP866, KOI8-R, Windows 1251 y terminando con las modernas codificaciones Unicode Consortium UTF 16 y 8.

Para algunos, esta información puede parecer innecesaria, pero ¿saben cuántas preguntas recibo específicamente sobre los krakozyabrs (conjunto de caracteres ilegibles) que se arrastran? Ahora tendré la oportunidad de remitir a todos al texto de este artículo y encontrar mis propios errores. Bueno, prepárate para absorber la información e intenta seguir el flujo de la historia.

ASCII: codificación de texto básica para el alfabeto latino

El desarrollo de las codificaciones de texto se produjo simultáneamente con la formación de la industria de TI, y durante este tiempo lograron sufrir muchos cambios. Históricamente, todo comenzó con EBCDIC, que era bastante disonante en la pronunciación rusa, lo que permitía codificar letras del alfabeto latino, números arábigos y signos de puntuación con caracteres de control.

Pero aún así, el punto de partida para el desarrollo de codificaciones de texto modernas debe considerarse el famoso ASCII(Código estándar americano para el intercambio de información, que en ruso suele pronunciarse como “aski”). Describe los primeros 128 caracteres más utilizados por los usuarios de habla inglesa: números arábigos y signos de puntuación.

Estos 128 caracteres descritos en ASCII también incluían algunos caracteres de servicio como corchetes, marcas de almohadilla, asteriscos, etc. De hecho, puedes verlos tú mismo:

Son estos 128 caracteres de la versión original de ASCII los que se han convertido en el estándar, y en cualquier otra codificación seguramente los encontrará y aparecerán en este orden.

Pero el hecho es que con la ayuda de un byte de información puedes codificar no 128, sino hasta 256 valores diferentes (dos elevado a ocho es igual a 256), así que después de que apareció la versión básica de Asuka. toda la linea codificaciones ASCII extendidas, en el que, además de 128 caracteres básicos, también era posible codificar símbolos de la codificación nacional (por ejemplo, ruso).

Aquí probablemente valga la pena decir un poco más sobre los sistemas numéricos que se utilizan en la descripción. En primer lugar, como todos sabéis, un ordenador sólo funciona con números del sistema binario, es decir, ceros y unos (“álgebra booleana”, si alguien la estudió en un instituto o escuela). , cada uno de los cuales es un dos elevado a la potencia, comenzando desde cero, y hasta dos elevado a la séptima:

No es difícil entender que todas las combinaciones posibles de ceros y unos en un diseño de este tipo solo pueden ser 256. Convertir un número del sistema binario al sistema decimal es bastante simple. Sólo necesitas sumar todas las potencias de dos con las que están por encima de ellas.

En nuestro ejemplo, esto resulta ser 1 (2 elevado a cero) más 8 (dos elevado a 3), más 32 (dos elevado a la quinta), más 64 (a la sexta potencia), más 128 (a la séptima potencia). El total es 233 en notación decimal. Como puedes ver, todo es muy sencillo.

Pero si miras de cerca la tabla con caracteres ASCII, verás que están representados en codificación hexadecimal. Por ejemplo, "asterisco" corresponde al número hexadecimal 2A en Aski. Probablemente sepas que en el sistema numérico hexadecimal, además de los números arábigos, también se utilizan letras latinas desde la A (significa diez) hasta la F (significa quince).

Pues bien, para convertir un número binario a hexadecimal recurra al siguiente método simple y obvio. Cada byte de información se divide en dos partes de cuatro bits, como se muestra en la captura de pantalla anterior. Eso. En cada medio byte, sólo se pueden codificar dieciséis valores (dos a la cuarta potencia) en binario, lo que se puede representar fácilmente como un número hexadecimal.

Además, en la mitad izquierda del byte, los grados deberán contarse nuevamente comenzando desde cero, y no como se muestra en la captura de pantalla. Como resultado, mediante cálculos simples, obtenemos que el número E9 está codificado en la captura de pantalla. Espero que el curso de mi razonamiento y la solución a este enigma te hayan quedado claros. Bueno, ahora sigamos, de hecho, hablando de codificaciones de texto.

Versiones extendidas de Asuka: codificaciones CP866 y KOI8-R con pseudografía

Entonces, comenzamos a hablar de ASCII, que fue, por así decirlo, el punto de partida para el desarrollo de todas las codificaciones modernas (Windows 1251, Unicode, UTF 8).

Inicialmente, contenía solo 128 caracteres del alfabeto latino, números arábigos y algo más, pero en la versión extendida fue posible utilizar los 256 valores que se pueden codificar en un byte de información. Aquellos. Se hizo posible agregar símbolos de letras de su idioma a Aski.

Aquí tendremos que hacer una digresión nuevamente para explicar: ¿Por qué necesitamos codificaciones? textos y por qué es tan importante. Los caracteres en la pantalla de su computadora se forman sobre la base de dos cosas: conjuntos de formas vectoriales (representaciones) de varios caracteres (están ubicados en archivos con ) y un código que le permite extraer de este conjunto de formas vectoriales (archivo de fuente ) exactamente el carácter que deberá insertarse en el lugar correcto.

Está claro que las fuentes mismas son responsables de las formas vectoriales, pero el sistema operativo y los programas utilizados en él son responsables de la codificación. Aquellos. cualquier texto en su computadora será un conjunto de bytes, cada uno de los cuales codifica un solo carácter de este mismo texto.

El programa que muestra este texto en la pantalla (editor de texto, navegador, etc.), al analizar el código, lee la codificación del siguiente carácter y busca la forma vectorial correspondiente en el archivo requerido fuente que está conectada para mostrar este documento de texto. Todo es simple y banal.

Esto significa que para codificar cualquier carácter que necesitemos (por ejemplo, del alfabeto nacional), se deben cumplir dos condiciones: la forma vectorial de este carácter debe estar en la fuente utilizada y este carácter podría codificarse en codificaciones ASCII extendidas en un byte. Por lo tanto, existen muchas opciones de este tipo. Sólo para codificar caracteres del idioma ruso, existen varias variedades de Aska extendido.

Por ejemplo, apareció originalmente CP866, que tenía la capacidad de utilizar caracteres del alfabeto ruso y era una versión extendida de ASCII.

Aquellos. su parte superior coincidía completamente con la versión básica de Aska (128 caracteres latinos, números y otras tonterías), que se presenta en la captura de pantalla justo arriba, pero la parte inferior de la tabla con codificación CP866 tenía la apariencia indicada en la captura de pantalla justo debajo y le permitió codificar otros 128 signos (letras rusas y todo tipo de pseudografías):

Verás, en la columna de la derecha los números empiezan con 8, porque... Los números del 0 al 7 se refieren a la parte básica de ASCII (ver la primera captura de pantalla). Eso. La letra rusa "M" en CP866 tendrá el código 9C (se encuentra en la intersección de la fila correspondiente con 9 y la columna con el número C en el sistema numérico hexadecimal), que se puede escribir en un byte de información, y Si hay una fuente adecuada con caracteres rusos, esta letra aparecerá sin problemas en el texto.

¿De dónde salió esta cantidad? pseudografías en CP866? La cuestión es que esta codificación para texto en ruso se desarrolló en aquellos años difíciles en los que los sistemas operativos gráficos no estaban tan extendidos como lo están ahora. Y en Dosa y sistemas operativos de texto similares, los pseudográficos permitieron al menos diversificar de alguna manera el diseño de los textos y, por lo tanto, abundan en él CP866 y todos sus demás pares de la categoría de versiones extendidas de Asuka.

CP866 fue distribuido por IBM, pero además de esto, se desarrollaron varias codificaciones para los caracteres del idioma ruso, por ejemplo, se puede atribuir el mismo tipo (ASCII extendido). KOI8-R:

El principio de funcionamiento sigue siendo el mismo que el del CP866 descrito anteriormente: cada carácter de texto está codificado por un solo byte. La captura de pantalla muestra la segunda mitad de la mesa KOI8-R, porque La primera mitad es completamente consistente con la Asuka básica, que se muestra en la primera captura de pantalla de este artículo.

Entre las características de la codificación KOI8-R, se puede observar que las letras rusas en su tabla no están en orden alfabético, como lo hacía, por ejemplo, en CP866.

Si observa la primera captura de pantalla (de la parte básica, que se incluye en todas las codificaciones extendidas), notará que en KOI8-R las letras rusas se encuentran en las mismas celdas de la tabla que las letras correspondientes del alfabeto latino. de la primera parte de la tabla. Esto se hizo para facilitar el cambio de caracteres rusos a latinos descartando solo un bit (dos elevado a la séptima potencia o 128).

Windows 1251: la versión moderna de ASCII y por qué aparecen las grietas

El mayor desarrollo de las codificaciones de texto se debió al hecho de que los sistemas operativos gráficos estaban ganando popularidad y la necesidad de utilizar pseudográficos en ellos desapareció con el tiempo. Como resultado, surgió todo un grupo que, en esencia, seguían siendo versiones extendidas de Asuka (un carácter de texto está codificado con solo un byte de información), pero sin el uso de símbolos pseudográficos.

Pertenecían a las denominadas codificaciones ANSI, desarrolladas por el American Standards Institute. En el lenguaje común, el nombre cirílico también se utilizó para la versión compatible con el idioma ruso. Un ejemplo de esto sería.

Se diferenciaba favorablemente de los CP866 y KOI8-R utilizados anteriormente en que el lugar de los símbolos pseudográficos lo ocupaban los símbolos faltantes de la tipografía rusa (excepto el acento), así como los símbolos utilizados en lenguas eslavas cercanas a Ruso (ucraniano, bielorruso, etc.):

Debido a la abundancia de codificaciones en idioma ruso, los fabricantes de fuentes y los fabricantes software constantemente surgían dolores de cabeza, y usted y yo, queridos lectores, a menudo sufrimos esos mismos notorios krakozyabry cuando hubo confusión con la versión utilizada en el texto.

Muy a menudo aparecían al enviar y recibir mensajes a través de correo electrónico, lo que implicaba la creación de tablas de conversión muy complejas, que, de hecho, no podían resolver este problema, y ​​​​los usuarios a menudo utilizaban la correspondencia para evitar trucos notorios al usar codificaciones rusas como CP866, KOI8-R o Windows 1251.

De hecho, los krakozyabrs que aparecieron en lugar del texto ruso fueron el resultado de un uso incorrecto de la codificación. de este idioma, que no coincidía con aquel en el que estaba codificado mensaje de texto inicialmente.

Digamos que si intenta mostrar caracteres codificados con CP866 usando la tabla de códigos de Windows 1251, aparecerán estos mismos galimatías (un conjunto de caracteres sin sentido), reemplazando completamente el texto del mensaje.

Una situación similar surge muy a menudo en foros o blogs, cuando el texto con caracteres rusos se guarda por error en la codificación incorrecta que se utiliza en el sitio de forma predeterminada, o en la codificación incorrecta. editor de texto, que añade chistes al código que no son visibles a simple vista.

Al final, mucha gente se cansó de esta situación con muchas codificaciones y constantemente asustando basura, y aparecieron los requisitos previos para la creación de una nueva variación universal que reemplazaría a todas las existentes y finalmente resolvería el problema con la apariencia. de textos ilegibles. Además, estaba el problema de idiomas como el chino, donde había muchos más caracteres del idioma que 256.

Unicode: codificaciones universales UTF 8, 16 y 32

Estos miles de caracteres del grupo lingüístico del Sudeste Asiático no podrían describirse en un solo byte de información que se asignó para codificar caracteres en versiones extendidas de ASCII. Como resultado, se creó un consorcio llamado Unicódigo(Unicode - Unicode Consortium) con la colaboración de muchos líderes de la industria de TI (aquellos que producen software, codifican hardware, crean fuentes), que estaban interesados ​​en el surgimiento de una codificación de texto universal.

La primera variación lanzada bajo los auspicios del Consorcio Unicode fue UTF 32. El número en el nombre de la codificación significa la cantidad de bits que se utilizan para codificar un carácter. 32 bits equivalen a 4 bytes de información que serán necesarios para codificar un solo carácter en la nueva codificación universal UTF.

Como resultado, un mismo archivo con texto codificado en la versión extendida de ASCII y en UTF-32, en este último caso, tendrá un tamaño (peso) cuatro veces mayor. Esto es malo, pero ahora tenemos la oportunidad de codificar usando YTF una cantidad de caracteres igual a dos elevado a la potencia de treinta segundos ( miles de millones de caracteres, que cubrirá cualquier valor realmente necesario con un margen colosal).

Pero muchos países con idiomas del grupo europeo no necesitaban usar una cantidad tan grande de caracteres en la codificación, sin embargo, al usar UTF-32, sin ningún motivo recibieron un aumento de cuatro veces en el peso de los documentos de texto. y como resultado, un aumento en el volumen de tráfico de Internet y en el volumen de datos almacenados. Esto es mucho y nadie podría permitirse ese desperdicio.

Como resultado del desarrollo de Unicode, UTF-16, que resultó tener tanto éxito que se adoptó por defecto como espacio base para todos los caracteres que utilizamos. Utiliza dos bytes para codificar un carácter. Veamos cómo se ve esto.

En el sistema operativo Windows, puede seguir la ruta “Inicio” - “Programas” - “Accesorios” - “Herramientas del sistema” - “Tabla de caracteres”. Como resultado, se abrirá una tabla con las formas vectoriales de todas las fuentes instaladas en su sistema. Si selecciona el conjunto de caracteres Unicode en las “Opciones avanzadas”, podrá ver para cada fuente por separado toda la gama de caracteres incluidos en ella.

Por cierto, al hacer clic en cualquiera de ellos, puedes ver sus dos bytes. código en formato UTF-16, que consta de cuatro dígitos hexadecimales:

¿Cuántos caracteres se pueden codificar en UTF-16 usando 16 bits? 65.536 (dos elevado a dieciséis), y este es el número que se adoptó como espacio base en Unicode. Además, existen formas de codificar alrededor de dos millones de caracteres usándolo, pero estaban limitadas a un espacio ampliado de un millón de caracteres de texto.

Pero incluso esta versión exitosa de la codificación Unicode no trajo mucha satisfacción a quienes escribieron, por ejemplo, programas sólo en idioma en Inglés, porque tras la transición de la versión extendida de ASCII a UTF-16, el peso de los documentos se duplicó (un byte por carácter en Aski y dos bytes por el mismo carácter en UTF-16).

Fue precisamente para satisfacer a todos y a todo en el consorcio Unicode que se decidió idear codificación de longitud variable. Se llamó UTF-8. A pesar del ocho en su nombre, en realidad tiene una longitud variable, es decir. Cada carácter de texto se puede codificar en una secuencia de uno a seis bytes de longitud.

En la práctica, UTF-8 sólo utiliza el rango de uno a cuatro bytes, porque más allá de cuatro bytes de código ya no es posible imaginar nada en teoría. Todos los caracteres latinos que contiene están codificados en un byte, como en el antiguo ASCII.

Lo que es digno de mención es que en el caso de codificar solo el alfabeto latino, incluso aquellos programas que no entienden Unicode seguirán leyendo lo que está codificado en YTF-8. Aquellos. la parte central de Asuka simplemente fue transferida a esta creación del consorcio Unicode.

Los caracteres cirílicos en UTF-8 están codificados en dos bytes y, por ejemplo, los caracteres georgianos están codificados en tres bytes. El Consorcio Unicode, después de crear UTF 16 y 8, resolvió el problema principal: ahora tenemos las fuentes tienen un solo espacio de código. Y ahora sus fabricantes sólo pueden llenarlo con formas vectoriales de caracteres de texto en función de sus puntos fuertes y capacidades. Ahora incluso vienen en juegos.

En la "Tabla de caracteres" de arriba, puede ver que diferentes fuentes admiten diferentes números de caracteres. Algunas fuentes ricas en Unicode pueden ser bastante pesadas. Pero ahora se diferencian no en que fueron creados para diferentes codificaciones, sino en el hecho de que el fabricante de la fuente llenó o no completamente el espacio de código único con ciertas formas vectoriales.

Palabras locas en lugar de letras rusas: cómo solucionarlo

Veamos ahora cómo aparecen krakozyabrs en lugar de texto o, en otras palabras, cómo se selecciona la codificación correcta para el texto en ruso. En realidad, se establece en el programa en el que crea o edita este mismo texto o código utilizando fragmentos de texto.

Para editar y crear archivos de texto Personalmente uso uno muy bueno, en mi opinión. Sin embargo, también puede resaltar la sintaxis. un buen centenar lenguajes de programación y marcado, y también tiene la capacidad de ampliarse mediante complementos. Leer revisión detallada este maravilloso programa en el enlace proporcionado.

En el menú superior de Notepad++ hay un elemento "Codificaciones", donde tendrá la oportunidad de convertir una opción existente a la utilizada de forma predeterminada en su sitio:

En el caso de un sitio en Joomla 1.5 y superior, así como en el caso de un blog en WordPress, debes elegir la opción para evitar la aparición de grietas. UTF 8 sin lista de materiales. ¿Qué es el prefijo BOM?

El hecho es que cuando estaban desarrollando la codificación YUTF-16, por alguna razón decidieron adjuntarle la capacidad de escribir el código de caracteres tanto en secuencia directa (por ejemplo, 0A15) como a la inversa (150A). . Y para que los programas comprendan exactamente en qué secuencia leer los códigos, se inventó lista de materiales(Marca de orden de bytes o, en otras palabras, firma), que se expresó agregando tres bytes adicionales al comienzo de los documentos.

En la codificación UTF-8, no se proporcionaron BOM en el consorcio Unicode y, por lo tanto, agregar una firma (esos notorios tres bytes adicionales al comienzo del documento) simplemente evita que algunos programas lean el código. Por tanto, a la hora de guardar archivos en UTF, siempre debemos seleccionar la opción sin BOM (sin firma). Entonces estas adelantado protéjase de los krakozyabrs rastreros.

Lo que es digno de mención es que algunos programas en Windows no pueden hacer esto (no pueden guardar texto en UTF-8 sin una lista de materiales), por ejemplo, el mismo Bloc de notas de Windows. Guarda el documento en UTF-8, pero aún agrega la firma (tres bytes adicionales) al principio. Además, estos bytes siempre serán los mismos: lea el código en secuencia directa. Pero en los servidores, debido a esta pequeña cosa, puede surgir un problema: saldrán delincuentes.

Por lo tanto, bajo ninguna circunstancia No utilices el bloc de notas normal de Windows para editar documentos en su sitio si no desea que aparezcan grietas. lo mejor y mas opción sencilla Considero el ya mencionado editor Notepad++, que prácticamente no tiene inconvenientes y sólo tiene ventajas.

En Notepad++, cuando selecciona una codificación, tendrá la opción de convertir texto a codificación UCS-2, que es muy similar al estándar Unicode. También en el Bloc de notas será posible codificar texto en ANSI, es decir. En relación al idioma ruso, este será Windows 1251, que ya hemos descrito anteriormente. ¿De dónde viene esta información?

Está inscrito en tu registro. Sistema operativo Windows: qué codificación elegir en el caso de ANSI, cuál elegir en el caso de OEM (para el idioma ruso será CP866). Si configura otro idioma predeterminado en su computadora, estas codificaciones serán reemplazadas por otras similares de la categoría ANSI u OEM para ese mismo idioma.

Después de guardar el documento en Notepad++ con la codificación que necesita o abrir el documento desde el sitio para editarlo, podrá ver su nombre en la esquina inferior derecha del editor:

Para evitar a los paletos Además de las acciones descritas anteriormente, será útil escribir información sobre esta codificación en el encabezado del código fuente de todas las páginas del sitio para que no haya confusión en el servidor o host local.

En general, todos los lenguajes de marcado de hipertexto, excepto HTML, utilizan una declaración xml especial, que especifica la codificación del texto.

Antes de analizar el código, el navegador sabe qué versión se está utilizando y exactamente cómo debe interpretar los códigos de caracteres de ese idioma. Pero lo que es digno de mención es que si guarda el documento en el Unicode predeterminado, entonces esta declaración xml se puede omitir (la codificación se considerará UTF-8 si no hay una BOM o UTF-16 si hay una BOM).

En el caso de un documento en lenguaje HTML, la codificación se utiliza para indicar metaelemento, que está escrito entre las etiquetas Head de apertura y cierre:

... ...

Esta entrada es bastante diferente de la adoptada en, pero es totalmente compatible con el nuevo estándar Html 5 que se está introduciendo lentamente, y cualquier navegador utilizado actualmente la entenderá correctamente.

En teoría, sería mejor colocar un elemento Meta que indique la codificación del documento HTML. lo más alto posible en el encabezado del documento de modo que en el momento de encontrar el primer carácter en el texto que no sea del ANSI básico (que siempre se leen correctamente y en cualquier variación), el navegador ya debería tener información sobre cómo interpretar los códigos de estos caracteres.

¡Buena suerte para ti! Nos vemos pronto en las páginas del blog.

Tú podrías estar interesado

¿Qué son las direcciones URL? ¿En qué se diferencian los enlaces absolutos y relativos de un sitio?
OpenServer: un servidor local moderno y un ejemplo de cómo usarlo para instalar WordPress en una computadora
Qué es Chmod, qué permisos asignar a archivos y carpetas (777, 755, 666) y cómo hacerlo vía PHP
Búsqueda de Yandex por sitio y tienda en línea

A veces, por una razón u otra, a los usuarios del sistema operativo Windows les sucede algo que provoca fallos de codificación. Algún programa recién instalado, un virus, manipulaciones en el registro, nunca se sabe... ¡Las codificaciones desaparecieron y listo!

El otro día me pasó algo parecido. En algunos programas rusificados, algunas de las inscripciones de la interfaz comenzaron a parecer como si se hubieran insertado huellas de pájaros en lugar de letras:

Para ser honesto, pasé casi dos días buscando una solución al problema. En todos los foros y servicios de “preguntas y respuestas”, en todos los manuales e instrucciones, todos repetían la misma receta de solución, que puede haber ayudado a alguien. Pero no para mí. Y sólo cuando mi cerebro empezó a hervir y me abandonó toda esperanza de resolver el problema, todo encajó en su lugar.

Decidí formatear los resultados de la búsqueda en " Una guía integral para resolver todos los problemas de codificación del quirófano sistemas windows XP y Windows Vista/7" Aunque quizás no sea tan universal... ;)

Resolviendo problemas de codificación en Windows XP:

Párrafo 1. Primero debe asegurarse de que para los programas que no son compatibles con Unicode, esté instalado el idioma ruso.

Apertura « Panel de control» y haga doble clic en el icono « » . Ir a la pestaña « Además» « ».

Después de esto, busque el elemento 20880 en la lista ubicada en la misma pestaña y marque la casilla junto a él:

Punto 2. Es posible que los problemas de codificación se deban a una violación de la configuración de fuentes del sistema.

Para restaurar la configuración de fuente, descargue este archivo


Punto 3. El siguiente paso es cambiar las claves de registro responsables de las codificaciones. Es aconsejable realizar estos cambios sólo como último recurso y sólo si todos los puntos anteriores no han conducido a ninguna parte.

este archivo

Resolviendo problemas de codificación en Windows Vista/7:

1. Como en el caso de Windows XP, primero asegúrese de que para los programas que no admiten Unicode, el idioma esté configurado en ruso.

Apertura « Panel de control» y haga doble clic en el icono « Idioma y estándares regionales.» . Ir a la pestaña « Además» y establecer el idioma ruso como « Idioma de los programas que no soportan Unicode»:

Guarde los cambios y reinicie su computadora. Si el problema persiste, vaya al paso 2.

2. Para restaurar la configuración de fuente, descargue este archivo y ejecute el archivo que se encuentra en él, ignorando todas las advertencias del sistema:


Reinicie el sistema. Si el problema persiste, vaya al paso 3.

3. El siguiente paso es cambiar las claves de registro responsables de las codificaciones. Es aconsejable realizar estos cambios sólo como último recurso y sólo si todos los puntos anteriores no han conducido a ninguna parte.

Para realizar estos cambios, descargue este archivo y ejecute el archivo que se encuentra en él. Como en el párrafo anterior, aparecerán avisos del sistema.

Después de estos cambios también necesitarás reiniciar el sistema.

4. Si todo lo anterior no ayuda, debe cambiar los nombres de los siguientes archivos de página de códigos en la carpeta C:\Windows\System32:

Archivo " c_1252.nls" en " c_1252.nls.bak»
Archivo " c_1253.nls" en " c_1253.nls.bak»
Archivo " c_1254.nls" en " c_1254.nls.bak»
Archivo " c_1255.nls" en " c_1255.nls.bak»

Dado que estos archivos están protegidos contra modificaciones, para realizar esta operación es recomendable utilizar un programa maravilloso. Puede descargar el programa desde.

A principios de los 90, cuando se produjo el colapso de la URSS y se abrieron las fronteras de Rusia, comenzamos a recibir productos de software Producción occidental. Naturalmente, todos hablaban inglés. Al mismo tiempo, comenzó a desarrollarse Internet. Se ha agudizado el problema de la rusificación de recursos y programas. Luego se inventó la codificación rusa de Windows 1251. Le permite mostrar correctamente las letras de los alfabetos eslavos:

  • Ruso;
  • Ucranio;
  • bielorruso;
  • Serbio;
  • Búlgaro;
  • macedónio

El desarrollo fue realizado por la representación rusa de Microsoft junto con las empresas Dialog y Paragraph. La base se tomó de los desarrollos escritos por ellos mismos, que en 1990-91 circulaban entre los pocos ideólogos de TI en Rusia.

Hasta la fecha, más de método universal codificar caracteres - UTF-8 (Unicode). Representa casi el 90% de todo el software y recursos web. Windows 1251 se utiliza en el 1,6% de los casos. (Información de Encuestas de Tecnología Web)

¿Sitio web que codifica utf 8 o windows 1251?

Para responder a esta pregunta, es necesario comprender un poco qué es una codificación y en qué se diferencian. La información de texto, como cualquier otra información, se almacena en una computadora en forma codificada. Es más fácil para nosotros pensar en ello como números. Cada carácter puede ocupar uno o más bytes. Windows 1251 es una codificación de un solo byte, mientras que UTF-8 es una codificación de ocho bytes. Esto significa que sólo se pueden codificar 256 caracteres en Windows 1251.
Dado que todo se reduce al sistema binario y un byte tiene 8 bits (0 y 1), el número máximo de combinaciones es 28 = 256. Unicode le permite representar una cantidad mucho mayor de caracteres y se puede asignar un tamaño mayor. para cada.

Aquí es donde siguen las ventajas de Unicode:

  1. En el encabezado del sitio debes indicar la codificación que se utiliza. De lo contrario, se mostrarán “símbolos locos” en lugar de símbolos. Y Unicode es estándar para todos los navegadores: lo detectan "sobre la marcha" como está instalado de forma predeterminada.
  2. Los símbolos del sitio seguirán siendo los mismos sin importar en qué país se cargue el recurso. Esto no depende de la ubicación geográfica de los servidores, sino del idioma del software de las estaciones de trabajo del cliente. Un residente en Portugal obviamente utiliza el teclado y todo el software, incluido el sistema operativo, en su lengua materna. Lo más probable es que su computadora no tenga Windows 1251. Y si este es el caso, los sitios en ruso no se abrirán correctamente. Unicode, a su vez, está "integrado" en cualquier sistema operativo en cualquier idioma.
  3. UTF-8 le permite codificar más caracteres. En este momento Se utilizan 6 bytes de 8 y los caracteres rusos se codifican en dos bytes.
    Por eso es preferible utilizar una codificación universal en lugar de una altamente especializada, que sólo se utiliza en los países eslavos.

Tabla de codificación de Windows 1251

Para los programadores y desarrolladores de sitios web, a veces es necesario conocer los números de caracteres. Para ello se utilizan tablas de codificación especiales. A continuación se muestra la tabla para Windows 1251.

¿Qué hacer si se pierde la codificación de la línea de comando?

A veces puede encontrarse con una situación en la que se muestra la línea de comando en lugar de ruso. símbolos extraños. Esto significa que hay un problema de codificación de comandos. cadenas de windows 7. ¿Por qué 7? Porque, a partir de la versión 8, se usa UTF-8, y en la versión 7 también se usa Windows 1251.
El comando chcp 866 puede ayudar a resolver el problema al mismo tiempo. La sesión actual funcionará correctamente. Pero para corregir el error radicalmente, necesitará un registro.


¡Qué tengas un lindo día!

Como es sabido, ventanas 10 admite la instalación de paquetes de idiomas, que se pueden utilizar para cambiar la localización de la interfaz del sistema operativo. El concepto de lenguaje de sistema está muy relacionado con esto. El idioma del sistema no es el que se agregó usando paquete de idioma, sino el que se seleccionó al instalar el propio sistema. Si está trabajando en una computadora corporativa cuyo idioma se ha cambiado al instalar MUI -packages, es posible que desee saber qué idioma se utilizó originalmente en el sistema.

Hay varias formas de determinar el idioma del sistema.

Veámoslos en orden.

Usando la utilidad de la consola DISM

Ejecutar como administrador línea de comando y ejecute el comando dism /online /get-intl en él. En unos segundos obtendrás el resultado.

Presta atención al parámetro. "Idioma interfaz de usuario por defecto" . Su significado será el idioma del sistema.

Usando la consola PowerShell

Inicie la consola como administrador y ejecute el comando ::InstalleduICulture .

Valor del parámetro Nombre para mostrar apuntará al idioma del sistema. Preste también atención al parámetro LCID, contiene el código de idioma escrito en registro de windows(vea abajo).

Usando el Editor del Registro y la Tabla de Decodificación

Equipo regedit abra el editor de registro y expanda la rama

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Idioma

En la columna derecha de la ventana del editor, busque el parámetro de cadena (él está en el fondo) y ver su significado.

Está representado por un código de cuatro dígitos, para descifrarlo se debe utilizar la tabla de decodificación del sitio web. MSDN. En nuestro ejemplo el código 0419 Corresponde al idioma ruso.

Uno de Posibles problemas que puedes encontrar después Instalaciones de Windows 10 - krakozyabry en lugar de letras rusas en la interfaz del programa, así como en los documentos. Más a menudo visualización incorrecta El alfabeto cirílico se encuentra en versiones del sistema originalmente en inglés y sin licencia completa, pero hay excepciones.

Esta instrucción le indica cómo arreglar "krakozyabry" (o jeroglíficos), o más precisamente, la visualización del alfabeto cirílico en Windows 10 de varias maneras. También podría ser útil: (para sistemas en inglés y otros idiomas).

Las páginas de códigos son tablas en las que ciertos bytes se asignan a ciertos caracteres, y la visualización del alfabeto cirílico como jeroglíficos en Windows 10 generalmente se debe al hecho de que la página de códigos incorrecta está configurada de manera predeterminada y esto se puede corregir de varias maneras. puede ser útil cuando sea necesario. No cambie el idioma del sistema en la configuración.

Usando el Editor del Registro

La primera forma es utilizar el Editor del Registro. En mi opinión, este es el método más suave para el sistema, sin embargo, lo recomiendo antes de comenzar. Los consejos sobre puntos de restauración se aplican a todos los métodos posteriores de esta guía.


Por lo general, esto soluciona el problema al mostrar letras rusas. Una variación del método que usa el editor de registro (pero menos preferible) es mirar el valor actual del parámetro ACP (generalmente 1252 para sistemas nativos en inglés), luego, en la misma sección de registro, buscar un parámetro llamado 1252 y cambiar su valor de c_1252.nls en c_1251.nls.

Reemplazando el archivo de la página de códigos con c_1251.nls

El segundo método, no recomendado por mí, pero elegido a veces por quienes creen que editar el registro es demasiado difícil o peligroso: reemplazar el archivo de la página de códigos en C:\Windows\System32(Se supone que tiene la página de códigos de Europa occidental configurada en 1252, este suele ser el caso. Puede ver la página de códigos actual en el parámetro ACP del registro, como se describe en el método anterior).

Después reiniciar Windows 10, el alfabeto cirílico deberá representarse no como jeroglíficos, sino como letras rusas ordinarias.

decirles a los amigos
Con el advenimiento...
Artículo siguiente