I have the following python script (tes.py):
#!/usr/bin/env python # -*- coding: utf-8 -*- import MySQLdb query = "INSERT INTO test(test) VALUES ('ñ')" print query + "\n" conn = MySQLdb.connect (host = "localhost", user = "ibrick", passwd = "x", db = "ibrick", charset="utf8") conn.names="utf8" cursor = conn.cursor() cursor.execute (query); cursor.close () conn.commit ()
utf-8 file encoding:
$ file -i tes.py tes.py: text/x-java charset=utf-8
UTF system coding:
#locale LANG=es_AR.UTF-8 LC_CTYPE="es_AR.UTF-8" LC_NUMERIC="es_AR.UTF-8" LC_TIME="es_AR.UTF-8" LC_COLLATE="es_AR.UTF-8" LC_MONETARY="es_AR.UTF-8" LC_MESSAGES="es_AR.UTF-8" LC_PAPER="es_AR.UTF-8" LC_NAME="es_AR.UTF-8" LC_ADDRESS="es_AR.UTF-8" LC_TELEPHONE="es_AR.UTF-8" LC_MEASUREMENT="es_AR.UTF-8" LC_IDENTIFICATION="es_AR.UTF-8" LC_ALL= echo "ñññ" > /tmp/test.txt file /tmp/test.txt /tmp/test.txt: UTF-8 Unicode text
MYsql UTF8 table designation:
mysql> show create table test; +-------+----------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+----------------------------------------------------------------------------------------------+ | test | CREATE TABLE `test` ( `test` varchar(10) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 | +-------+----------------------------------------------------------------------------------------------+
The console output is in order:
#./tes.py INSERT INTO test(test) VALUES ('ñ')
Problem:
the script does not insert - into the table .. it inserts a bad character:
select * from test; +------+ | test | +------+ | | | | | | | | | | | | | | +------+ 7 rows in set (0.00 sec)
Does anyone help me?
Thanks in advance!
source share