Codificación UTF-8

Información general

Con EcoStruxure Machine Expert V2.2 y versiones posteriores, el tipo de datos STRING se puede codificar en formato Latin 1 o UTF-8. Para obtener más información, consulte los párrafos Codificación UTF-8 en todo el proyecto y Codificación de literales únicos en formato UTF-8.

Dado que la codificación UTF-8 proporciona el conjunto de caracteres más completo, se recomienda habilitar la codificación UTF-8 para nuevos proyectos, así como para proyectos existentes que vayan a utilizarse en un nuevo contexto.

EcoStruxure Machine Expert puede procesar una amplia variedad de caracteres para mostrar mensajes de diagnóstico o visualizaciones en diferentes idiomas, así como para aceptar los datos proporcionados por el usuario en estos idiomas y caracteres o símbolos.

Si no se requiere un conjunto de caracteres completo o si un proyecto no está sujeto a cambios, las cadenas se pueden codificar en formato Latin 1. Además, se admiten los siguientes conjuntos de caracteres:

Conjunto de caracteres

Número de página de códigos

Descripción

Codificación de caracteres

ASCII

20127

  • 128 caracteres

  • Adecuado para textos en inglés.

Carácter codificado de 7 bits

DOS Latin 1

819, 850

  • Cumple con ISO/IEC 8859.

  • Adecuado para idiomas de Europa occidental en la línea de comandos de Windows.

Carácter codificado de 8 bits

Latin 1

28591

  • Cumple con ISO/IEC 8859–1.

  • Utilizado con frecuencia para páginas HTML con äöüß pero sin o, por ejemplo, caracteres especiales franceses.

Carácter codificado de 8 bits

Codificación Windows 1252

1252

  • Conjunto de caracteres predeterminado de Windows para países de Europa occidental.

  • Windows utiliza internamente el formato UTF-16.

  • Contiene todos los caracteres de ISO/IEC 8859–1 e ISO/IEC 8859–15 pero con una codificación distinta en parte.

Carácter codificado de 8 bits

Unicode

-

  • Conjunto de caracteres universal para una amplia variedad de idiomas, incluidos idiomas históricos, Braille, música o emojis.

  • Se pueden mostrar más de 100.000 caracteres.

  • Cada carácter tiene un código numérico.

  • A diferencia de ASCII, se distingue entre la asignación de puntos de código a caracteres y la codificación de los caracteres.

  • Los códigos numéricos < 128 son compatibles con ASCII

  • Los códigos numéricos < 256 son compatibles con ISO/IEC 8859–1

Para obtener más información, consulte https://home.unicode.org/.

-

Unicode 14.0

-

144.697 caracteres

-

UTF-16

1200

  • Unicode especial

  • Se utiliza en algunos sistemas operativos (Windows, OS X) y lenguajes de programación (Java, .NET) para la representación interna de caracteres.

  • Diferentes arquitecturas informáticas codifican los caracteres de 4 bytes de manera diferente.

    Orden de bytes little endian para UTF-16LE.

Caracteres codificados de 16 bits

Los caracteres se codifican en 2 bytes o 4 bytes.

UTF-8

65001

  • Formato de codificación orientado a bytes de caracteres Unicode.

  • El más ampliamente utilizado.

  • Se utiliza en sistemas operativos GNU/Linux y Unix, así como en diversos servicios de Internet (correo electrónico, web, navegador).

  • Compatible con caracteres ASCII en los primeros 128 caracteres (0...127).

Tupla de palabras de 8 bits por carácter

Los caracteres están codificados en diferentes longitudes de 1...4 bytes.

Codificación UTF-8 en todo el proyecto

En el cuadro de diálogo Configuración del proyecto > Opciones de compilación se incluye el parámetro Codificación UTF8 para STRING, que permite configurar la codificación UTF-8 para todas las cadenas de tipo de datos STRING en todo el proyecto. Consulte Configuración del proyecto: opciones de compilación en la Ayuda en línea de comandos de menú.

NOTA: Antes de establecer el formato de codificación en UTF-8, ejecute la regla de análisis estático SA0175 en el código para detectar construcciones que podrían provocar problemas con la codificación UTF-8.

Los tipos de datos WSTRING no se ven afectados por esta configuración. Siempre se codifican en Unicode en formato UTF-16.

Para el tipo de datos STRING, la codificación para todo el proyecto es la siguiente:

Opción Codificación UTF8 para STRING

Codificación para todo el proyecto

Seleccionada

UTF-8

No seleccionada

  • Codificación Windows 1252 (codificación predeterminada de Windows)

  • Latin 1

Con la codificación UTF-8 para todo el proyecto habilitada, pueden utilizarse los operadores de conversión STRING_TO según se describe en Conversiones STRING_TO.

Si se ha habilitado la codificación UTF-8 para todo el proyecto, esta configuración también se aplica a los complementos y las funciones de la biblioteca.

Codificación de literales únicos en formato UTF-8

Si se utiliza la codificación Latin 1 en todo el proyecto (la opción Codificación UTF8 para STRING no está seleccionada), podrá codificar literales únicos en formato UTF-8. Para lograrlo, añada el prefijo de tipo UTF8# a cada literal.

{attribute 'monitoring_encoding' := 'UTF-8'}
strVarUtf8: STRING := UTF8#'你好,世界!ÜüÄäÖö';
NOTA: Si usa cadenas únicas codificadas en UTF-8, asegúrese de que se interpreten correctamente dondequiera que se utilicen.

Ejemplo: Una variable de cadena en el servidor OPC UA se convertirá a UTF-8 antes de ser transferida a un cliente si no se selecciona esta configuración. Esto provoca la malinterpretación de valores como, por ejemplo, UTF8#'äöü'.

Una situación similar puede ocurrir con cadenas que se muestran en la visualización.

Para obtener más información, consulte

Manipulación de cadenas

Utilice funciones de biblioteca para manipular cadenas.

AVISO
MANIPULACIÓN IMPREVISTA DE CADENAS
NO utilice un acceso de índice a una variable de tipo STRING para la manipulación de cadenas, ya que esto puede dar lugar a resultados imprevistos si se habilita la codificación UTF-8 en todo el proyecto.
Si no se siguen estas instrucciones, pueden producirse daños en el equipo.