jader.marques Posted July 26, 2012 Report Share Posted July 26, 2012 Boa tarde a todos.Estou desenvolvendo um programa no qual uso a biblioteca glib.Preciso converter uma string UTF-8 para ISO-8859-1 ou vice e versa, ou outros enconding, estou usando a função g_convert da glib.Gostaria de saber como faço pra saber o encoding de um string?Obrigado. Quote Link to comment Share on other sites More sharing options...
0 Marcelo Utikawa da Fonseca Posted July 27, 2012 Report Share Posted July 27, 2012 Boa tarde!Não existe uma forma de se descobrir pois não há na string um identificador.Um exemplo seria o ISO-8859-1 e o UTF-8. Uma string apenas com os caracteres normais (letras sem acentuação, números) seria exatamente igual em ambas codificações. Já se tivesse um caracter acentuado, por exemplo, teria uma diferença.Assim, o máximo que daria para fazer é tentar consistir os dados para verificar se o formato bate com algum padrão.Exemplo: no UTF-8, os caracteres especiais podem ter até 4 bytes. A codificação é a seguinte:Até 0x007F (7 bits), o valor resultante não é alterado: será apenas 1 byte, 0xxxxxxx em binárioDepois, até 0x07FF (11 bits), serão dois bytes no formato: 110xxxxx e 10xxxxxxOu seja: em uma string UTF-8, quando o oitavo bit de qualquer byte estiver ligado, indica que é um caracter com mais de 7 bits e portanto deverá obedecer a regra acima.Pode ser um pouco complicado de entender mas, em resumo: sem saber a codificação original, o máximo que podemos fazer é tentar descobrir a codificação, sem qualquer garantia de estarmos certos ou não... Quote Link to comment Share on other sites More sharing options...
Question
jader.marques
Boa tarde a todos.
Estou desenvolvendo um programa no qual uso a biblioteca glib.
Preciso converter uma string UTF-8 para ISO-8859-1 ou vice e versa, ou outros enconding, estou usando a função g_convert da glib.
Gostaria de saber como faço pra saber o encoding de um string?
Obrigado.
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.