Problemas com encoding Linux vs Windows

Prezados amigos do R, Eu uso emacs + ess muitas vezes alterno entre Windows (XP, 32 Bits) e Linux (Ubuntu 64bit 11.04). Ambos os sistemas operacionais estão em inglês. Recentemente eu importei uma planilha de excel pelo read.xls (pacote gdata) no windows e fiz as análises sem problemas. Ao carregar o mesmo workspace (sem importar os dados novamente) no linux, vários caracteres apareceram de modo bizarro. O problema é o mesmo seja rodando o R dentro do emacs ou diretamente no terminal. Por exemplo, a palavra "não" usada em algumas variáveis aparece como "n\xe3o", embora eu consiga escrevê-la e colocá-la em títulos de gráficos, etc. Alguém tem alguma sugestão de como corrigir este problema? Desde já agradeço. Abs, D

compare os resultados de Sys.getlocale() nos diferentes ambientes e, imagino eu que, vc tera' claro em mente o que fazer. b

?Encoding []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 26/02/2012 12:30, Daniel C Bezerra escreveu:
Prezados amigos do R,
Eu uso emacs + ess muitas vezes alterno entre Windows (XP, 32 Bits) e Linux (Ubuntu 64bit 11.04). Ambos os sistemas operacionais estão em inglês.
Recentemente eu importei uma planilha de excel pelo read.xls (pacote gdata) no windows e fiz as análises sem problemas. Ao carregar o mesmo workspace (sem importar os dados novamente) no linux, vários caracteres apareceram de modo bizarro. O problema é o mesmo seja rodando o R dentro do emacs ou diretamente no terminal.
Por exemplo, a palavra "não" usada em algumas variáveis aparece como "n\xe3o", embora eu consiga escrevê-la e colocá-la em títulos de gráficos, etc.
Alguém tem alguma sugestão de como corrigir este problema?
Desde já agradeço. Abs,
D
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

Agradeço a ajuda de ambos, mas ainda não consegui resolver. A função Encoding permite mudar apenas um vetor de caracteres e não todo o data frame. Quanto as variáveis locais o output no windows foi:
Sys.getlocale() [1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
e no Ubuntu: Sys.getlocale() [1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C" Entretanto, ao tentar mudar o locale no Linux tenho a seguinte mensagem de erro: Sys.setlocale(category = "LC_ALL", locale = "English_United States.1252") [1] "" Warning message: In Sys.setlocale(category = "LC_ALL", locale = "English_United States.1252") : OS reports request to set locale to "English_United States.1252" cannot be honored Alguma sugestão? Muito obrigado, D 2012/2/26 Leonard de Assis <assis.leonard@gmail.com>
?Encoding
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 26/02/2012 12:30, Daniel C Bezerra escreveu:
Prezados amigos do R,
Eu uso emacs + ess muitas vezes alterno entre Windows (XP, 32 Bits) e Linux (Ubuntu 64bit 11.04). Ambos os sistemas operacionais estão em inglês.
Recentemente eu importei uma planilha de excel pelo read.xls (pacote gdata) no windows e fiz as análises sem problemas. Ao carregar o mesmo workspace (sem importar os dados novamente) no linux, vários caracteres apareceram de modo bizarro. O problema é o mesmo seja rodando o R dentro do emacs ou diretamente no terminal.
Por exemplo, a palavra "não" usada em algumas variáveis aparece como "n\xe3o", embora eu consiga escrevê-la e colocá-la em títulos de gráficos, etc.
Alguém tem alguma sugestão de como corrigir este problema?
Desde já agradeço. Abs,
D
_______________________________________________ R-br mailing listR-br@listas.c3sl.ufpr.brhttps://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

O problema é onde? 1. No vetor? Resolve com o Encoding 2. No nome da variável? também resolve com o Encoding, mas com ajuda do colnames 3. Se for geral, melhor saída é olhar o read.table, ele dá também de mudar o encoding Mas o Benilton está certo: o importante é saber qual codificação de seus dados para poder consertar referências: ?Encoding ?colnames ?read.table []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 26/02/2012 13:44, Daniel C Bezerra escreveu:
Agradeço a ajuda de ambos, mas ainda não consegui resolver.
A função Encoding permite mudar apenas um vetor de caracteres e não todo o data frame.
Quanto as variáveis locais o output no windows foi:
Sys.getlocale() [1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
e no Ubuntu: Sys.getlocale() [1] "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C"
Entretanto, ao tentar mudar o locale no Linux tenho a seguinte mensagem de erro: Sys.setlocale(category = "LC_ALL", locale = "English_United States.1252") [1] "" Warning message: In Sys.setlocale(category = "LC_ALL", locale = "English_United States.1252") : OS reports request to set locale to "English_United States.1252" cannot be honored
Alguma sugestão?
Muito obrigado,
D
2012/2/26 Leonard de Assis <assis.leonard@gmail.com <mailto:assis.leonard@gmail.com>>
?Encoding
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 26/02/2012 12:30, Daniel C Bezerra escreveu:
Prezados amigos do R,
Eu uso emacs + ess muitas vezes alterno entre Windows (XP, 32 Bits) e Linux (Ubuntu 64bit 11.04). Ambos os sistemas operacionais estão em inglês.
Recentemente eu importei uma planilha de excel pelo read.xls (pacote gdata) no windows e fiz as análises sem problemas. Ao carregar o mesmo workspace (sem importar os dados novamente) no linux, vários caracteres apareceram de modo bizarro. O problema é o mesmo seja rodando o R dentro do emacs ou diretamente no terminal.
Por exemplo, a palavra "não" usada em algumas variáveis aparece como "n\xe3o", embora eu consiga escrevê-la e colocá-la em títulos de gráficos, etc.
Alguém tem alguma sugestão de como corrigir este problema?
Desde já agradeço. Abs,
D
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@listas.c3sl.ufpr.br> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@listas.c3sl.ufpr.br> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

2012/2/26 Daniel C Bezerra <danielcbezerra@gmail.com>:
Agradeço a ajuda de ambos, mas ainda não consegui resolver.
A função Encoding permite mudar apenas um vetor de caracteres e não todo o data frame.
As funções toUTF8() e fromUTF8() do pacote "descr" faz a conversão de todo o data.frame ou lista. Por padrão, a conversão é feita de/para "WINDOWS-1252"/"UTF-8". Eu fiz a função justamente para facilitar o intercâmbio de dados entre Linux e Windows. -- Jakson Alves de Aquino Universidade Federal do Ceará Departamento de Ciências Sociais www.lepem.ufc.br/aquino.php

Sensacional. Era exatamente isto que eu estava precisando. O problema era em todo o data frame e a função toUTF8 funcionou perfeitamente. Outra coisa: descobri que se eu ler no linux o arquivo xls com a função read.xlsx (pacote xlsx) ao invés de read.xls (pacote gdata) não preciso declarar o encoding e o reconhecimento de caracteres é imediato. Muitíssimo obrigado a todos. Abs, D 2012/2/26 Jakson Alves de Aquino <jalvesaq@gmail.com>
2012/2/26 Daniel C Bezerra <danielcbezerra@gmail.com>:
Agradeço a ajuda de ambos, mas ainda não consegui resolver.
A função Encoding permite mudar apenas um vetor de caracteres e não todo o data frame.
As funções toUTF8() e fromUTF8() do pacote "descr" faz a conversão de todo o data.frame ou lista. Por padrão, a conversão é feita de/para "WINDOWS-1252"/"UTF-8". Eu fiz a função justamente para facilitar o intercâmbio de dados entre Linux e Windows.
-- Jakson Alves de Aquino Universidade Federal do Ceará Departamento de Ciências Sociais www.lepem.ufc.br/aquino.php _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
participantes (4)
-
Benilton Carvalho
-
Daniel C Bezerra
-
Jakson Alves de Aquino
-
Leonard de Assis