Clase wxEncodingConverter
Esta clase es capaz de convertir cadenas entre dos codificaciones/juegos de caracteres de 8 bits.
Jerarquía:

También puede convertir de/a Unicode.
Solo un subconjunto limitado de codificaciones es compatible con wxEncodingConverter: wxFONTENCODING_ISO8859_1..15, wxFONTENCODING_CP1250..1257 y wxFONTENCODING_KOI8.
Nota: Por favor, utilizar las clases wxMBConv en su lugar si es posible. wxCSConv tiene mucho mejor soporte para varias codificaciones que wxEncodingConverter. wxEncodingConverter es útil solo si se confía en el modo de operación wxCONVERT_SUBSTITUTE (ver wxEncodingConverter::Init()).
Funciones miembro
wxEncodingConverter()
wxEncodingConverter::wxEncodingConverter()
Constructor.
CanConvert()
static bool wxEncodingConverter::CanConvert( wxFontEncoding encIn, wxFontEncoding encOut )
Devuelve true si (cualquier texto en) la codificación multibyte encIn se puede convertir a otra (encOut) sin pérdidas.
No debe llamese a este método con wxFONTENCODING_UNICODE como cualquiera de los parámetros, no tiene sentido (siempre funciona en un sentido y siempre depende del texto a convertir en el otro).
Convert()
bool wxEncodingConverter::Convert(char * str) const
Convierte la cadena de entrada según los ajustes pasados a Init() in situ.
Con esta sobrecarga, el resultado de la conversión se escribe en la misma zona de memoria desde la que se lee la entrada.
Véase la sobrecarga Convert(const char*,char*) const para más información.
Convert()
bool wxEncodingConverter::Convert( const char * input, char * output ) const
Convierte la cadena de entrada según la configuración pasada a Init() y escribe el resultado en la salida.
Todas las sobrecargas de la función Convert() devuelven true si la conversión se ha realizado sin pérdidas y false si al menos uno de los caracteres no se ha podido convertir y se ha sustituido por '?' en la salida.
Hay que tener en cuenta que si se ha pasado wxCONVERT_SUBSTITUTE a Init(), la sustitución se considera una operación sin pérdidas.
Nota: Se debe llamar a Init() antes de utilizar este método.
Convert()
bool wxEncodingConverter::Convert( const char * input, wchar_t * output ) const
Convierte la cadena de entrada según la configuración pasada a Init() y escribe el resultado en la salida.
Todas las sobrecargas de la función Convert() devuelven true si la conversión se ha realizado sin pérdidas y false si al menos uno de los caracteres no se ha podido convertir y se ha sustituido por '?' en la salida.
Hay que tener en cuenta que si se ha pasado wxCONVERT_SUBSTITUTE a Init(), la sustitución se considera una operación sin pérdidas.
Nota: Se debe llamar a Init() antes de utilizar este método.
Convert()
bool wxEncodingConverter::Convert( const wchar_t * input, char * output ) const
Convierte la cadena de entrada según la configuración pasada a Init() y escribe el resultado en la salida.
Todas las sobrecargas de la función Convert() devuelven true si la conversión se ha realizado sin pérdidas y false si al menos uno de los caracteres no se ha podido convertir y se ha sustituido por '?' en la salida.
Hay que tener en cuenta que si se ha pasado wxCONVERT_SUBSTITUTE a Init(), la sustitución se considera una operación sin pérdidas.
Nota: Se debe llamar a Init() antes de utilizar este método.
Convert()
bool wxEncodingConverter::Convert( const wchar_t * input, wchar_t * output ) const
Convierte la cadena de entrada según la configuración pasada a Init() y escribe el resultado en la salida.
Todas las sobrecargas de la función Convert() devuelven true si la conversión se ha realizado sin pérdidas y false si al menos uno de los caracteres no se ha podido convertir y se ha sustituido por '?' en la salida.
Hay que tener en cuenta que si se ha pasado wxCONVERT_SUBSTITUTE a Init(), la sustitución se considera una operación sin pérdidas.
Nota: Se debe llamar a Init() antes de utilizar este método.
Convert()
wxString wxEncodingConverter::Convert(const wxString & input) const
Convert()
bool wxEncodingConverter::Convert(wchar_t * str) const
Convierte la cadena de entrada según los ajustes pasados a Init() in situ.
Con esta sobrecarga, el resultado de la conversión se escribe en la misma zona de memoria desde la que se lee la entrada.
Véase la sobrecarga Convert(const char*,char*) const para más información.
GetAllEquivalents()
static wxFontEncodingArray wxEncodingConverter::GetAllEquivalents(wxFontEncoding enc)
Similar a GetPlatformEquivalents(), pero ésta devolverá TODAS las codificaciones equivalentes, independientemente de la plataforma, e incluyéndose a sí misma.
Las codificaciones de esta plataforma están antes que otras en la matriz. Y de nuevo, si enc está en la matriz, es el primer elemento en ella.
GetPlatformEquivalents()
static wxFontEncodingArray wxEncodingConverter::GetPlatformEquivalents( wxFontEncoding enc, int platform = wxPLATFORM_CURRENT )
Devuelve los equivalentes de una fuente dada que se utilizan en una plataforma determinada.
Plataformas soportadas:
- wxPLATFORM_UNIX
- wxPLATFORM_WINDOWS
- wxPLATFORM_MAC
- wxPLATFORM_CURRENT
- wxPLATFORM_CURRENT significa la plataforma para la que se compiló este binario.
Ejemplos:
current platform enc returned value ---------------------------------------------- unix CP1250 {ISO8859_2} unix ISO8859_2 {ISO8859_2} windows ISO8859_2 {CP1250} unix CP1252 {ISO8859_1,ISO8859_15}
La equivalencia se define en términos de convertibilidad: dos codificaciones son equivalentes si puede convertir texto entre ellas sin perder información (puede ocurrir -y ocurrirá- que pierda caracteres especiales como comillas o guiones, pero no debería perder diacríticos ni caracteres específicos del idioma al convertir entre codificaciones equivalentes).
Hay que recordar que esta función NO comprueba la presencia de fuentes en el sistema. Solo indica cuáles son las codificaciones más adecuadas. (Normalmente solo devuelve una codificación).
Nota: Hay que tener en cuenta que el propio argumento enc puede estar presente en la matriz devuelta, de modo que pueda, como efecto secundario, detectar si la codificación es nativa para esta plataforma o no.
Convert() no se limita a convertir entre codificaciones equivalentes, puede convertir entre dos codificaciones arbitrarias.
Si enc está presente en el array devuelto, entonces es siempre el primer elemento del mismo.
Hay que tener en cuenta que la matriz devuelta puede no contener ningún elemento.
Init()
bool wxEncodingConverter::Init( wxFontEncoding input_enc, wxFontEncoding output_enc, int method = wxCONVERT_STRICT )
Inicializa la conversión.
Tanto la codificación de salida como la de entrada pueden ser wxFONTENCODING_UNICODE, pero solo si wxUSE_ENCODING está establecido a 1.
Todas las llamadas posteriores a Convert() interpretarán su argumento como una cadena en codificación input_enc y emitirán la cadena en codificación output_enc.
Se debe llamar a este método antes de llamar a Convert. Puede se llamado más de una vez para cambiar a otra conversión.
method afecta al comportamiento de Convert() en caso de que el carácter de entrada no pueda ser convertido porque no existe en la codificación de salida:
- wxCONVERT_STRICT: sigue el comportamiento de GNU Recode - solo copia los caracteres no convertibles a la salida y no los cambia (su valor entero permanecerá igual)
- wxCONVERT_SUBSTITUTE: intenta algunas sustituciones (con pérdida) - p.e. reemplazar mayúsculas latinas inconvertibles con agudas por mayúsculas ordinarias, reemplazar en-dash o em-dash por '-' etc.
Ambos modos garantizan que la cadena de salida tendrá la misma longitud que la de entrada.
Valor de retorno
false si la conversión dada es imposible, true en caso contrario (la conversión puede ser imposible si se intenta convertir a Unicode con una versión no Unicode de wxWidgets o si la codificación de entrada o salida no está soportada).
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxObject.