4D v15 le permite guardar cadenas de código de los métodos 4D en Unicode:
- En las bases de datos creadas con 4D v15 y posteriores, el código de los métodos se guarda automáticamente en Unicode
- En bases de datos convertidas de una versión anterior, la nueva opción Save methods as Unicode de las propiedades de la base permite pasar al modo Unicode:

Nota: si modifica esta opción, es necesario reiniciar la aplicación para que el cambio se tenga en cuenta. Puede activar o desactivar esta opción en cualquier momento; sólo los métodos guardados posteriormente se ven afectados.
En versiones anteriores de 4D, las cadenas en el código de los métodos (fórmulas, nombres de variables y métodos, comentarios, etc.) se almacenan utilizando la codificación actual local. Esta codificación podría causar problemas, sobre todo cuando se comparte código 4D entre desarrolladores de diferentes países: por ejemplo, si un desarrollador francés escribió código 4D con acentos y luego envía la base a un desarrollador Inglés, se perderían estos acentos. También podrían ocurrir graves problemas con código escrito con versiones en japonés.
Guardar métodos como Unicode resuelve todos estos tipos de problemas y hace que sea posible el intercambio de código 4D que contiene caracteres locales específicos.
Le recomendamos que active la opción modo Unicode para métodos tan pronto como sea posible en sus bases existentes, especialmente si trabaja en un entorno internacional.
Nota de implementación: esta nueva funcionalidad aplica al lenguaje mismo y a su interpretación. Algunas ventanas del editor 4D, tales como la lista de propiedades, aún utilizan la codificación actual local y por lo tanto pueden mostrar algunas cadenas incorrectamente. Sin embargo, esto no afecta a la ejecución del código.
El almacenamiento de métodos 4D en Unicode (en una nueva base 4D v15 o en base convertida con la opción Save methods as Unicode seleccionada) es transparente para los usuarios.
Sin embargo, los cambios internos necesarios han dado lugar a una profunda modificación de la representación de los punteros en el código 4D. Los "nuevos" punteros se han mejorado internamente y también soportan funciones adicionales, tales como elementos de un array 2D (ver RESOLVE POINTER).
Para mantener la compatibilidad con los componentes y plug-ins previamente compilados, un nuevo tipo de puntero se ha añadido al lenguaje 4D, en lugar de sustituir el tipo existente. Este nuevo tipo se maneja de forma transparente en sus aplicaciones. Sin embargo, tenga en cuenta que:
- RESOLVE POINTER ahora devuelve -1 en lugar de 0 en el cuarto parámetro para punteros a variables y arrays unidimensionales.
- Get pointer se comportará de manera diferente con respecto a los nombres de las variables inválidos o espacios adicionales.