Caractéres Estranhos '?' no Banco de Dados [RESOLVIDO]

Olá pessoal,
eu estou com uma dúvida aqui
não sei o porque no meu banco de
Dados quando eu vou inserir um
estado por exemplo: São Paulo
no banco de dados aparece:

Será que alguém poderia me dar uma ajuda?
Eu não sei direito porque isso está acontecendo.

[]'s.

[quote=ricardocomp]Olá pessoal,
eu estou com uma dúvida aqui
não sei o porque no meu banco de
Dados quando eu vou inserir um
estado por exemplo: São Paulo
no banco de dados aparece:

Será que alguém poderia me dar uma ajuda?
Eu não sei direito porque isso está acontecendo.

[]'s.
[/quote]

oi,

o charset do banco de dados não suporta acentos ou então o encoding da sua aplicação é diferente, isso pode dar problemas

qual o seu banco de dados e como vc está inserindo os dados?

Jóia André Fonseca?
Então eu estou usando o MySQL
E estou inserindo os dados da seguinte forma:

String sql = "INSERT INTO endereco(rua, numero, bairro, " +
                    "cidade, estado, cep, uf)"
                    + "VALUES(?,?,?,?,?,?,?)";

            
            ps = conn.prepareStatement(sql);
            ps.setString(1, endereco.getRua());
            ps.setInt(2, endereco.getNumero());
            ps.setString(3, endereco.getBairro());
            ps.setString(4, endereco.getCidade());
            ps.setString(5, endereco.getEstado());
            ps.setString(6, endereco.getCep());
            ps.setString(7, endereco.getUf());              
            ps.executeUpdate();  

André você ou alguém sabe o que eu devo fazer
para que não ocorra este problema?

[]'s.

Realmente acho que o andré tem razão, mas pelo código que você colocou não tem como saber o charset do banco que você está utilizando nem mesmo o encoding da sua aplicação, verifique isso que o caminho é esse mesmo.

[]'s

Jóia jmozer?
Como que eu faço para saber o charset do banco e o encoding da minha aplicação?
O que é o charset do banco?
e o que é encoding?

[]'s.

Jóia jmozer?
pelo Script SQL
tem como eu saber o charset do banco
e o encoding que eu tô utilizando?
Vc ou alguém poderia me explicar o que é
charset do banco e o que é encoding direito?

CREATE TABLE Endereco (
  idEndereco INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  rua VARCHAR(40) NOT NULL,
  numero INTEGER UNSIGNED NOT NULL,
  bairro VARCHAR(40) NOT NULL,
  cidade VARCHAR(20) NOT NULL,
  estado VARCHAR(20) NOT NULL,
  cep VARCHAR(9) NULL,
  uf VARCHAR(2) NULL,
  PRIMARY KEY(idEndereco)
)
TYPE=InnoDB;

[]'s.

Ricardo,

dá uma olhada nesse link http://blog.ftgoncalves.com/2009/02/charset-no-mysql-como-solucionar-problemas/ provavelmente deve resolver o problema.

E claro, o comando indicado na página “SHOW VARIABLES LIKE ‘character%’;” você deve executar diretamente no banco de dados.

[]'s

Eu encontrei um link interessante aqui sobre
os tipos de dados do MySQL e vou posta-lo aqui
pois se algum dia alguém precisar:

[]'s.

Obrigado jmozer e André pela ajuda.
[]'s.

oi

achei um código que ajuda vc a identificar o charset que está sendo usado pela aplicação

FileWriter filewrt = new FileWriter("out"); String defaultcharset = filewrt.getEncoding(); filewrt.close(); System.out.println("Default encoding is :" + defaultcharset);

testei no eclipse e funciona, espero que ajude

t+

Olá André eu instalei o SQLyog aqui no meu computador
e descobri o seguinte:

CREATE TABLE `endereco` (
   `idEndereco` int(10) unsigned NOT NULL auto_increment,
   `rua` varchar(20) NOT NULL,
   `numero` int(10) unsigned NOT NULL,
   `bairro` varchar(30) NOT NULL,
   `cidade` varchar(20) NOT NULL,
   `estado` varchar(20) NOT NULL,
   `cep` varchar(9) default NULL,
   `uf` varchar(2) default NULL,
   PRIMARY KEY  (`idEndereco`)
 ) ENGINE=InnoDB DEFAULT CHARSET=ascii

DEFAULT CHARSET=ascii

Acho que eu vou ter que reinstalar o meu MySQL
porque acho que eu devo ter elterado esta opção
na hora que eu intalei o MySQL.

[]'s.

Acho que não precisa reinstalar o MySQL, basta que quando você for criar as tabelas especificar o charset a ser utilizado.

[]'s

ASCII não vai ter acentos mesmo, o charset mais comum para usar por aqui é o ISO-8859-1.

Eu acabei reinstalando o meu MySQL
e estou usando a codificação UTF-8
mas Bruno eu achei um pouco meio estranho
pq para mim a tabela ASCII possui
os caracteres de acentos sim
eu até dei uma olhada pro dia das dúvidas
na revista Saber Eletronica:


http://www.sabereletronica.com.br/files/file/Tabela%20ASCII%20-%20Artigo%20Comunicacao%20RS-232.PDF

Abração e Obrigado a todos. :smiley:

Sr. Ricardo, a tal “tabela ASCII” que aparece no site da Saber Eletrônica é a codificação Windows-1252, que é quase igual à ISO-8859-1. No utilitário do Windows “Charmap” aparece como “Windows-Ocidental”.

O “ASCII” de verdade só vai de 32 a 126. (Os caracteres de controle de 0 a 31 também foram definidos pela associação ASCII.


Jóia entanglement ?
Mas olha esse outro site aqui da USP:


http://iris.sel.eesc.usp.br/sel614/ASCII.pdf

repare os caracteres
94, 96 e 126 da tabela original,
a tabela ASCII tb possui uma extensão.

Abração.

A tabela que você me mostrou (“ascii estendido”) na verdade é a codificação CP437 (veja http://en.wikipedia.org/wiki/Code_page_437 ).

Essa codificação é antiga, dos tempos dos IBM-PCs e IBM-XTs. Ela tem a particularidade de não ter o caracter “ã”.

ASCII, por definição, é uma codificação de 7 bits, e os caracteres imprimíveis vão de 32 a 126.