Gravar campos com acentuação em MySQL via Python

Publicado por Artur Fernandes de souza Filho em 28/07/2009

[ Hits: 11.080 ]

 


Gravar campos com acentuação em MySQL via Python



Descobri uma maneira de colocar acentos no MySQL via Python. Coloquei a codificação de caracteres como UTF-8 no banco de dados e no Python, mas sempre tinha problemas com a inserção de caracteres com acentos, entre outros, nos campos de dados do MySQL.

Sempre imaginei que bastava colocar isso no início do arquivo:

#-*- coding:utf-8 -*-

mas descobri que era necessário algo mais. Então está aí o exemplo de conexão com um banco de dados MySQL. Com definição de codificação de caracteres, o nome do banco de dados, usuário e senha são "python". Exemplo de código:

bd=MySQLdb.connect(host="localhost",user="python",passwd="python",db="python",charset="utf8", use_unicode = True)

Com isso terminei todos os meus problemas com acentuação no MySQL. Espero que essa dica ajude mais pessoas.

Até!

Outras dicas deste autor

Conectando à internet fácil fácil com o W580i

Leitura recomendada

Usando o MySQL no Python

Python + SQLite

Bootsplash no Debian 5.0 (Lenny) Linux

Corrigindo erro "VM is inaccessible" do VirtualBox

Bloqueando conexões indesejadas (Lista de endereços nocivos)

  

Comentários
[1] Comentário enviado por stack_of em 28/07/2009 - 19:46h

Ao criar um banco de dados você pode especificar o tipo de codificação, por exemplo utf-8:


CREATE DATABASE meu_bd DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

[2] Comentário enviado por phiron em 30/07/2009 - 08:51h

Exatamente, mas o problema é que ao gravar no banco de dados com o python os caracteres iam todos bagunçados, com a criação do cursor em python especificando a codificação esse problema acaba, eu havia imaginado que apenas com isso e a definição de codificação do cabeçalho já resolveria, mas não é apenas isso.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts