Em Monday 18 February 2008 14:48:45 Eduardo Oliveira silva escreveu: > Boa tarde pessoal, > > Estou com proplemas aqui no writer, quando eu salvo o documento, onde > tem acentos aparece ? e outros caracteres estranhos, alguém pode me > ajudar. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED]
Não sei se ajuda, mas envio um texto com link sobre codificação de caracteres, que normalmente esta relacionados com estes erros. CODIFICAÇÃO DE CARACTERES UTF-8 OU ISO 8859-1 (iso-latin1) http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1398 Artigos Home > Artigos > Linux > Configuração > Visualização de artigo Codificação de caracteres de arquivos ASCII dvissotto 18/08/2004 Muitas vezes encontramos incompatibilidade entre o sistema de codificação de caracteres de um sistema para outro e até mesmo dentro do próprio sistema, isso porque existem dois tipos padrões de codificação de caracter para o Brasil. UTF-8 e ISO-8859-1 (ou iso-latin1). Este artigo se propõe a diminuir as mazelas causadas por um ou por outro. Por: Dornelles Vissotto Junior [ Hits: 18448 ] Conceito: 9.5 + quero dar nota ao artigo + Favoritos Papel A4 Versão para impressora Indicar para um amigo Enviar artigo DICA Em caso de dúvidas sobre o funcionamento de alguma das seções do site, consulte nossa FAQ. Se a dúvida permanecer, tente esclarecê-la na comunidade Sugestões para o Viva o Linux. Codificação de caracteres de arquivos ASCII Codificação de caracteres de arquivos ASCII Nos primórdios computacionais foi criada uma tabela de caracteres básica que continha 128 caracteres e portanto era possível de ser armazenada em um binário de 7 bits chamado ASCII. Com a disseminação dos computadores pelo mundo veio a necessidade de incorporar a esta tabela caracteres diferentes (variantes em cada país) composto não apenas por letras, números e sinais, mas por caracteres especiais. Vários países que usam letras acentuadas e assim a tabela foi expandida para binário de 8 bits (256 caracteres). No entanto, se considerarmos os alfabetos das línguas européias, os alfabetos cirílico (Rússia) e grego, que são totalmente diferentes do alfabeto que nós usamos, 256 caracteres é também insuficiente para descrevê-los. Para cada necessidade específica foram criadas tabelas de 8 bits e normalizadas pela ISO (International Standardation Organization). Todos eles são compatíveis com o ASCII nos primeiros 128 caracteres, diferenciando-se entre si nos últimos 128 caracteres. Para alguns países da Ásia, onde se usam ideogramas, o binário é de 16 bits. Vale ressaltar que dentro de um mesmo país pode haver mais de uma tabela sendo usado. Por exemplo, aqui no Brasil usa-se muito o ISO-8859-1 no Linux, e o IBM 850 no DOS, que são incompatíveis. Muitas vezes encontramos incompatibilidade entre o sistema de codificação de caracteres (character encoding) de um sistema para outro e até mesmo dentro do próprio sistema. Isto porque existem dois tipos padrões de codificação de caracter para o Brasil, em se tratando de Linux. UTF-8 e iso-8859-1 (iso-latin1). Ambas as codificações se baseiam na descrição de caracteres para línguas provenientes do Latin. O problema é: você só consegue usar um charset por vez. O primeiro é mais novo e se propõe a acabar com a incompatibilidade entre os vários tipos de codificação de caracteres iso-latin0-16, por isto a denominação Unicode ou também latin-extended, principalmente relacionadas aos códigos HTML. O segundo é mais tradicional e vem sendo utilizado amplamente e com sucesso nas mais variadas aplicações. O UTF-8 veio de um novo código de 16 bits (65536 caracteres - UTF-16), chamado de Unicode, englobando todas as codificações de caracteres em uma única tabela. Isto é, você poderá ler caracteres europeus ou asiáticos sem ter que mudar a codificação, e isto ao mesmo tempo! O problema é que estes arquivos ficariam enormes, pois usariam 2 bytes por caracter ao invés de 1 byte. O UTF-8 nada mais é do que uma forma alternativa: usa caracteres de bits variáveis. Um caractere alfabético usaria apenas 7 ou 8 bits, e caracteres asiáticos usariam 16 bits. Uma das maiores complicações na compatibilidade entre os dois sistemas (UTF-8 e iso) está na representação do Cedilha. Enquanto no iso-latin1 o cedilha adota apenas uma codificação para qualquer mapa de teclado ou região, para o UTF-8 o cedilha pode ser representado vezes por cedilha vezes por c com acento. Isto irá depender muito de suas configurações de Localização (locale) como linguagem, tipo de teclado, mapa de teclado. Estas incompatibilidades ainda acontecem, mesmo com uma correta informação sobre o locale. Quase todas as distribuições têm por padrão estarem adotando a codificação UTF-8. Como é difícil adaptar todos os padrões dos softwares instalados para UTF-8, e até mesmo por incompatibilidade com softwares de edição de documentos (latex principalmente), preferi adotar a tática de mudar a codificação do SO. Isto me rendeu algumas horas de problemas. Primeiro, as próprias configurações do locale devem ser feitas de tal modo que viabilizem a execução do padrão de caracteres desejado. Por exemplo: LANG=pt_BR LANG=pt_BR.ISO-8859-1 LANG=pt_BR.UTF-8 Se a base do SO está instalada com UTF-8, quando setamos apenas pt_BR ele automaticamente faz o link para pt_BR.UTF-8. Este foi um dos problemas que demorei a perceber e que rendeu uma dica neste site "cedilha com o Mandrake 10.0". Segundo, as definições de programas baseados em gerenciador gráficos podem adotar por padrão a codificação UTF-8. Quase desisti do Mozilla por conta deste problema. Mas depois de inúmeras pesquisas descobri que setar a configuração padrão do GTK resolveria o problema. Este foi outro probleminha que me rendeu mais uma dica neste site "cedilha no Mozilla". Um outro problema veio a cargo de trabalhar em grupo. Cada pessoa, cada estilo, cada codificação. É a mesma coisa que escrever um mesmo programa um pouco cada programador. Você olha um código anterior e fica meio sem saber o que está acontecendo. Setando a codificação padrão para iso-latin1, quase todos os arquivos UTF-8 conseguem a representação correta, ou seja, são traduzidos. O problema surge quando você precisa destes arquivos para processar as informações contidas nele, como é o caso do editor latex. Simplesmente coisas que funcionavam deixam de funcionar e aparentemente está tudo correto. Para solucionar estes problemas, é necessário a conversão da codificação dos arquivos para iso-latin1. Esta conversão, depois de alguma procura, é mais simples do que parece e pode ser feita de duas formas. Abrir o arquivo num editor padrão e salvá-lo com outro nome (ele faz a conversão da codificação automaticamente) ou usar o recode, que é um programa que recodifica arquivos ASCII. $ recode utf-8..iso-latin1 arquivo $ recode iso-latin1..utf-8 arquivo Também é possível usar o programa iconv, que é um programinha interpretador de códigos: $ iconv -f UTF-8 -t ISO-8859-1 arquivo-utf > arquivo-iso $ iconv -f ISO-8859-1 -t UTF-8 arquivo-iso > arquivo-utf Bom, espero que após esta extensa conversa sobre codificação de caracteres as coisas fiquem mais claras para vocês com este artigo. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
