Conceptos básicos
Las aplicaciones en CODESYS pueden procesar una gran variedad de caracteres, por ejemplo, para emitir un mensaje de error en varios idiomas. O para mostrar visualizaciones en un idioma seleccionado por el usuario que acepte entradas de usuario en una amplia variedad de idiomas, caracteres o símbolos. Si no es necesario un juego de caracteres exhaustivo, o si no hay que modificar un proyecto, pueden seguir utilizándose cadenas codificadas en formato Latin-1.
|
Juego de caracteres |
Número de página del código |
Descripción |
Codificación de caracteres |
|---|---|---|---|
|
ASCII |
20127 |
|
Carácter codificado de 7 bits |
|
DOS-Latín-1 |
819, 850 |
|
Carácter codificado de 8 bits |
|
Latín-1 |
28591 |
|
Carácter codificado de 8 bits |
|
Codificación Windows 1252 |
1252 |
|
Carácter codificado de 8 bits |
|
Unicode |
|
|
|
|
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 se codifican en longitudes diferentes, de 1 a 4 bytes. |
UTF-8 en CODESYS
La codificación UTF-8 es la codificación con el conjunto de caracteres más completo. Por lo tanto, se recomienda activar la codificación UTF-8 para los nuevos proyectos, así como para los proyectos existentes que vayan a utilizarse 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? |
|---|---|---|
|
CADENA |
Activado |
UTF-8 |
|
Discapacitados |
Codificación Windows 1252 (codificación por defecto de Windows) Latín-1 |
|
|
WSTRING |
Activado |
UTF-16 |
|
Discapacitados |
UTF-16 |
En CODESYS, el tipo de datos «STRING» puede codificarse en formatos Latin-1 o UTF-8. El tipo de datos «WSTRING» siempre codifica sus caracteres como Unicode en UTF-16.
Codificación de una sola cadena literal en formato UTF-8
Aunque el formato de codificación de todo el proyecto esté establecido en Latin-1, puede codificar un único literal en formato UTF-8. Para ello, añada el prefijo de tipo «UTF8#» al literal.
{attribute 'monitoring_encoding' := 'UTF-8'}
strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
Para más información, consulte:
Constante: UTF8# Cadena; ⮫ «Constante: UTF8# Cadena »
Atributo Pragma: ⮫ monitoring_encoding
Conversión de cadenas para codificación UTF-8
Si ha activado la codificación UTF-8 en todo el proyecto, puede utilizar las funciones de conversión de cadenas como de costumbre.
Manipulación de cadenas
Utiliza funciones de biblioteca para manipular tus cadenas.
Si hay que manipular variables «STRING», un acceso de índice a una variable en formato ASCII suele conducir al resultado deseado. Es mejor no utilizar esta construcción. No se trata sólo de 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 no deseada de las cadenas.
Codificación UTF-8 sólo para la configuración de todo el proyecto
Se utiliza una codificación UTF-8 si está activada la opción de compilación de todo el proyecto UTF8 encoding for STRING. Las funciones de la biblioteca y los complementos también se orientan según esta configuración.
Si utiliza cadenas codificadas en UTF-8, debe asegurarse de que se interpretan correctamente dondequiera que se utilicen. Por ejemplo, una variable de cadena en el servidor OPC se convertirá a UTF-8 antes de ser transferida a un cliente si el ajuste no está seleccionado. Valores como «UTF8#'äöü'» serían entonces malinterpretados. Pueden surgir problemas similares al mostrar cadenas en la visualización.