GARANTIR DESCONTO

Fórum Strings com acentos #568637

09/04/2009

0

Bom dia, galera... Alguem sabe me dizer porque quando eu uso acentos no string ele fica com uma '?' no lugar do caracter? como faz pra isso nao acontecer? :!: :!: :!: :!:
Rferreira

Rferreira

Responder

Posts

09/04/2009

Dadario

Tenta:
new String("não", "ISO-8859-1");
Ou veja o Locale da sua máquina. Ai você precisa setar para o da sua região para que o sistema pegue o encoding correto.
Responder

Gostei + 0

09/04/2009

Rferreira

[quote="dadario"]Tenta:
new String("não", "ISO-8859-1");
Ou veja o Locale da sua máquina. Ai você precisa setar para o da sua região para que o sistema pegue o encoding correto.
Eu usei 'String Retorno = new String("", "ISO-8859-1")' e Ele diz que 'cannot resolve symbol: constructor String (java.lang.String,java.lang.String)'... e no doc tambem nao existe esse construtor pra classe string.... :arrow: :arrow: :arrow: :arrow:
Responder

Gostei + 0

09/04/2009

Dadario

Ops :oops: :oops: Tenta este:
new String("não".getBytes(), "ISO-8859-1");
:idea: :idea: :idea:
Responder

Gostei + 0

09/04/2009

Rferreira

[quote="dadario"]Ops :oops: :oops: Tenta este:
new String("não".getBytes(), "ISO-8859-1");
:idea: :idea: :idea:
Meu, isso não deu certo... isso eh um string que retorna outros strings para varias funcoes que no final geram o email.... sera que eu terei de fazer isso sempre que modificar um string? não tem uma forma de essa especificacao afetar globalmente a coisa??
Responder

Gostei + 0

09/04/2009

Rferreira

Caros colegas, preciso reabrir o tópico com voces, não consegui resolver sozinho ainda.... A sintaxe que o colega passou, como eu disse, nao funciona... Eu testei em outros sistemas, mas todos mostram estranho independente do charset como a seguir: US-ASCII: mostra 'n?o' UTF-8: mostra 'n?' ISO-8859-1: mostra 'nÒo' Esse problema acontece quando eu uso algum termo com acento no codigo fonte... ele vai errado no output e pra todo o resto, inclusive pro banco de dados... Eu vi em outras buscas que varios usuarios reclamam disso com resposta para alterar a configuração do banco de dados, porém o banco funciona normal em outras aplicações e o java da problema até dando print.... Alguem ja se deparou com isso antes?
Responder

Gostei + 0

09/04/2009

Cleuber_s

Se o banco for postgree tente usar a url de conexão assim:
jdbc:postgresql://seuip/seubanco?charSet=ISO8859-1
Responder

Gostei + 0

09/04/2009

Cleuber_s

Você poderia dar a configuração do seu ambiente? Digo, versão do JDK, idioma do sistema operacional, banco de dados, IDE, etc. Executa também um
System.out.println(Locale.getDefault());
e diz o que que apareceu. Isso acontece em todos os programas que você escreve? Tetsuo
Responder

Gostei + 0

09/04/2009

Rferreira

manoo, eu uso freebsd com java versao 1.4.1 blackdown compilado pra linux e emulado pra rodar em freebsd pra desenvolver e o retorno do comando foi 'en_US', mas tenho o mesmo problema (testei só de raiva) usando windows xp em portugues (nao to no trampo agora pra testar o comando tbm)..... tenho certeza que o banco de dados suporta os acentos e que o problema eh, na verdade, no java..... digo isso porque tambem faco coisas em php que funcionam normal alem do proprio phpmyadmin.... o banco eh mysql com charset latin1 (iso-blabla-bla que o colega falou mais acima) e nao uso IDE.... somente ultraedit.... mas o problema foi notado usando até o edit do windows....
Responder

Gostei + 0

09/04/2009

Ronaldtm

Bom, uma coisa que já aconteceu comigo com essa questão de acentos é que a máquina que tinha o banco de dados (oracle) rodava em unix com locale em pt/BR, então funcionava legal. Depois, por engano, o pessoal mudou a configuração pra en/US, daí os acentos ficaram todos zoneados. Não sei se este é o problema (locale do banco), já que você disse que dá problema com qualquer string, mas talvez se você mudasse o locale pra pt_BR (tanto do banco quanto da JVM), talvez possa funcionar. Ah, o teste no windows, você compilou nele, ou só rodou os binários compilados no BSD? Pode ser isso tb, o compilador interpretou o encode errado na hora de transformar pra unicode, sei lá. Tetsuo
Responder

Gostei + 0

09/04/2009

Rferreira

epaa... so acrescentando.... essa historia ainda nao acabou... se você não compilar o código tambem com a variável setada (ex.: 'LANG=pt_BR javac *.java') não adianta setá-la somente na hora de usar e vice-versa.... precisa recompilar dinovo caso no ambiente onde o pacote foi compilado o ambiente nao seja pt_BR também.... heheheheh [b]java não é tão portável assim[/b].... =] :!: :!: :!: :!: :!: (eu fiz uma confusão aqui, ia acrescentar uma mensagem a anterior que dizia que funcionou, mas acabei editando e nao consegui voltar atras...)
Responder

Gostei + 0

09/04/2009

Ronaldtm

[quote="rferreira"]se você não compilar o código tambem com a variável setada (ex.: 'LANG=pt_BR javac *.java') não adianta setá-la somente na hora de usar e vice-versa.... precisa recompilar dinovo caso no ambiente onde o pacote foi compilado o ambiente nao seja pt_BR também....
Deve ser por que é na hora da compilação que os caracteres do texto são interpretados e passados para Unicode. Por exemplo, um 'ã' em 'Cp1252' (o encoding padrão do meu eclipse), se compilado no meu computador (pt_BR), vai ser traduzido pra um valor unicode 0x0147 (sei lá). Mas, se eu pegar o mesmo arquivo fonte e compilar em um outro computador (en_US) que usa 'US-ASCII', que não tem acentos, a string vai aparecer como '¥', e traduzido pro unicode 0x1666. Depois da compilação, o unicode é que conta, se lá estiver 0x0147, vai aparecer 'ã', se estiver 0x1666, vai aparecer '¥' (ou vai mapear pra algum caracter existente no charset local). Então, o que importa mesmo é o local de compilação, ora. O que eu não sei é como no editor aparece uma coisa, e o compilador entende outra. Tente... sei lá, abrir o arquivo no vi, ou dar cat pra ver se como é que o SO vê o arquivo (talvez o editor esteja salvando o arquivo usando um charset diferente do SO). [quote="rferreira"]heheheheh [b]java não é tão portável assim[/b].... =]
Então tente fazer esse mesmo programa em C++ :)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar