oficonv: bibliothèque de conversion de jeux de caractères
Ce module contient l'implémentation iconv de Citrus, dans une version modifiée, adaptée à une utilisation au sein de DCMTK et aux encodages de jeux de caractères utilisés par la norme DICOM.
Les fonctions les plus importantes sont :
Exemples
L'exemple suivant illustre une conversion de jeu de caractères très simple. La majeure partie du code de gestion des erreurs a été omise par souci de concision.
// we want to convert from ISO 8859-1 to UTF-8
iconv_t id = OFiconv_open("UTF-8", "ISO-8859-1");
if (id != OFreinterpret_cast(iconv_t, -1))
{
// set up input and output buffer
char output[20];
char input[20];
strcpy(input, "J\xF6rg");
// set up the parameters for OFiconv
char *src_ptr = input; // conformément à la spécification Posix, ce pointeur n'est pas const
size_t src_len = std::strlen(src_ptr);
char *dst_ptr = output;
size_t dst_len = 20;
// perform the conversion
size_t result = OFiconv(id, &src_ptr, &src_len, &dst_ptr, &dst_len);
// null terminate
if (dst_len > 0) *dst_ptr = '\0';
if (result != OFstatic_cast(size_t, -1))
{
std::cout << "UTF-8 string: " << output << std::endl;
}
// close the conversion descriptor
OFiconv_close(id);
}