Para que Joomla! pueda cumplir los requerimientos del soporte multilingüe, Joomla! utiliza el juego de caracteres Unicode y la codificación de caracteres UTF-8 (Unicode Transformation Format-8). Unicode es un conjunto de caracteres que intenta incluir todos los caracteres de cada lenguage común.
UTF-8 es una codificación sin pérdida de Unicode, que emplea una longitud de caracteres variables. Esto lo hace ideal para su uso en Internet, ya que utiliza una cantidad mínima de ancho de banda, pues representa todo el conjunto de caracteres Unicode.
Cuando se trata de caracteres en Inglés, UTF-8 utiliza la misma codificación como ASCII y ANSII. Esto tiene una consecuencia intencionada; cadenas con codificación UTF-8 aparecen idénticas a sus alternativas ASCII y ANSII. Las aplicaciones que son Unicode son capaces de manejar muchas cadenas UTF-8.
Una de estas aplicaciones que no es consciente de Unicode es PHP. Por tanto, tenemos que tener cuidado al manipular cadenas. PHP asume que todos los caracteres son de ocho bits (un byte), pero debido a que la codificación de caracteres UTF-8 puede ser más larga, esto puede causar la corrupción de los datos Unicode.
Hay un módulo PHP, mbstring, que añade soporte para codificaciones de caracteres multi-byte, desafortunadamente, no todos los sistemas de PHP tiene el módulo mbstring. En Joomla! podemos utilizar la clase estática Jstring; esta clase nos permite realizar muchas de las funciones de manipulación de cadenas con caracteres UTF-8.
Este ejemplo muestra cómo podemos usar Jstring para convertir una cadena a mayúsculas. Tenga en cuenta que el nombre del método es idéntico a la función PHP que normalmente usamos:
$cadena = Jstring::strtoupper($cadena);
En la tabla siguiente se describen las funciones de cadenas de PHP y sus correspondientes métodos Jstring:
| Función PHP | método Jstring | Descripción |
|---|---|---|
| strpos | strpos | Encuentra la primera aparición de una cadena en una cadena. |
| substr | substr | Obtiene una porción de una cadena. |
| strtolower | strtolower | Convierte una cadena a minúsculas. |
| strtoupper | strtoupper | Convierte una cadena a mayúsculas. |
| strlen | strlen | Cuenta la longitud de una cadena. |
| str_ireplace | str_ireplace | Reemplaza apariciones de una cadena con otra cadena en una cadena (mayúsculas y minúsculas). |
| str_split | str_split | Divide una cadena en una matriz. |
| strcasecmp | strcasecmp | Compara cadenas. |
| strcspn | strcspn | Obtiene la longitud de la cadena antes de los caracteres de los demás parámetros se encuentran. |
| stristr | stristr | Busca la primera ocurrencia de una cadena en una cadena (mayúsculas y minúsculas). |
| strrev | strrev | Invierte una cadena. |
| strspn | strspn | Cuenta el segmento más largo de una cadena que contiene caracteres especificados. |
| substr_replace | substr_replace | Reemplaza una parte definida de una cadena. |
| ltrim | ltrim | Elimina los espacios en blanco de la izquierda de una cadena |
| rtrim | rtrim | Elimina los espacios en blanco de la derecha de una cadena. |
| trim | trim | Elimina los espacios en blanco por los dos extremos de una cadena. |
| ucfirst | ucfirst | Convierte el primer carácter en mayúsculas. |
| ucwords | ucwords | Convierte la primera letra de cada palabra a mayúsculas. |
| transcode | Convierte una cadena de una codificación a otra. Requiere el módulo de PHP iconv. |






