Codificación UTF-8
Lo esencial
Aplicaciones en CODESYS puede procesar una amplia variedad de caracteres, por ejemplo, para generar un mensaje de error en varios idiomas. O para mostrar visualizaciones en un idioma seleccionado por el usuario que acepta la entrada del usuario en una amplia variedad de idiomas, caracteres o símbolos.
Si no es necesario un juego de caracteres completo, o si no se debe cambiar un proyecto, se pueden seguir utilizando cadenas codificadas en formato Latin-1.
Conjunto de caracteres | Número de página de códigos | Descripción | Codificación de caracteres |
---|---|---|---|
ASCII | 20127 |
| carácter codificado de 7 bits |
DOS-Latin-1 | 819, 850 |
| carácter codificado de 8 bits |
Latín-1 | 28591 |
| carácter codificado de 8 bits |
Codificación de Windows 1252 | 1252 |
| carácter codificado de 8 bits |
Unicode |
Para más información, ver: https://home.unicode.org/ | ||
Unicode 14.0 | 144.697 caracteres | ||
UTF-16 | 1200 |
| Caracteres codificados de 16 bits Los caracteres se codifican en 2 bytes o en 4 bytes. |
UTF-8 | 65001 |
| Tupla de palabras de 8 bits por carácter Los caracteres están codificados en diferentes longitudes de 1 a 4 bytes. |
UTF-8 en CODESYS
Sugerencia
La codificación UTF-8 es la codificación con el conjunto de caracteres más completo. Por lo tanto, se recomienda que habilite la codificación UTF-8 para nuevos proyectos, así como para proyectos existentes que se utilizarán en un nuevo contexto.
Tipo de datos | Opción de compilación: Codificación UTF8 para STRING | ¿Qué codificación se utiliza en todo el proyecto? |
---|---|---|
| Activado | UTF-8 |
Discapacitado | Codificación Windows 1252 (codificación predeterminada de Windows) Latín-1 | |
| Activado | UTF-16 |
Discapacitado | UTF-16 |
En CODESYS, los STRING
El tipo de datos se puede codificar en formatos Latin-1 o UTF-8. los WSTRING
tipo de datos siempre codifica sus caracteres como Unicode en UTF-16.
Codificación de un literal de cadena única en formato UTF-8
Incluso si el formato de codificación de todo el proyecto se establece en Latin-1, puede codificar un solo literal en formato UTF-8. Para hacer esto, agregue el UTF8#
escriba el prefijo del literal.
{attribute 'monitoring_encoding' := 'UTF-8'} strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
Para obtener más información, consulte: Constante: Cadena UTF8#; Atributo de pragma: monitoring_encoding
Conversión de cadenas para codificación UTF-8
Si ha habilitado la codificación UTF-8 en todo el proyecto, puede usar las funciones de conversión de cadenas como de costumbre.
manipulación de cadenas
Use funciones de biblioteca para manipular sus cadenas.
Si STRING
deben manipularse las variables, entonces un acceso de índice a una variable en formato ASCII a menudo conduce al resultado deseado. Es mejor no usar esta construcción. No es solo un mal estilo de programación. Para empeorar las cosas, con la codificación UTF-8, el acceso al índice conduce a una manipulación de cadenas no deseada.
Codificación UTF-8 solo para la configuración de todo el proyecto
Se usa una codificación UTF-8 si la opción de compilación de todo el proyecto Codificación UTF8 para STRING está habilitado. Las funciones de la biblioteca y los complementos también se orientan de acuerdo con esta configuración.
Si usa cadenas codificadas en UTF-8 individuales, debe asegurarse de que se interpreten correctamente donde sea que se usen. Por ejemplo, una variable de cadena en el servidor OPC se convertirá a UTF-8 antes de transferirse a un cliente si no se selecciona la configuración. Valores tales como UTF8#'äöü'
entonces sería malinterpretado. Pueden surgir problemas similares al generar cadenas en la visualización.