tirando Acentos em C

Iniciado por kcnp, 18 de Junho de 2008, 01:10

tópico anterior - próximo tópico

kcnp

Gente, eu to precisando de uma rotina em linguagem C que tire os acentos,cedilhas,tils e afins de uma string.
Alguem pode me ajudar?
kcnp

VincentRichardMagnus

Isso é meio complicado. Depende da codificação da string (UTF-8, UTF-16, ISO-8859-1, ...)
Exemplo: se o seu programa for compilado no UTF-8 e você usá-lo num sistema com ISO-8859-1, ele vai
interpretar os caracteres acentuados de maneira diferente -- e, consequentemente, não serão mais 'caracteres acentuados' para o seu programa (do ponto de vista de um programa em C, o 'caractere unicode' é, na verdade, uma string, pois é composta de dois caracteres [dois bytes]). Tentei fazer isso, mas não deu muito certo.

kcnp

Então, como faço pra controlar a codificação? Como compilar numa codificação especifica? Ate onde eu sei sistemas como o linux tem as diversas codificações a disposição. Quando você vai no gedit por exemplo você pode escolher qual usar.
kcnp

VincentRichardMagnus

Talvez uma rotina para detectar a codificação, mas eu nunca fiz isso. Vou ver se arranjo um tempo para testar e aí te mando uma resposta.

Sabe o GTK-Gnutella? Ele faz algo parecido. Eu ia falar pra você dar uma olhada no código fonte, mas aqui tá difícil baixar...

kcnp

Então, eu so perguntei se tinha como fazer uma rotina pra fazer isso por que eu tava procurando no google e só achei rotinas em PHP. E eu tava precisando de uma rotina em C.
Mas valeu pela ajuda, e se achar uma solução, posta aqui.
Obrigado.
kcnp