нет фото |
Автор: | grspectre |
Дата: | 4-Apr-2006 07:23 (gmt = -3.0) |
E-mail: | grspectre@mail.ru | | |
Встречный вопрос и пр.
подробнее... Код таков:
1 # -*- coding: utf_8 -*-
2 import MySQLdb
3 import codecs
4 from MySQLdb.constants import FIELD_TYPE, FLAG
5
6 def dec(i_str):
7 return unicode( i_str, 'utf_8').encode('utf-8')
8 #return unicode( i_str, 'utf_8').encode('cp866')
9 #return unicode( i_str, 'utf_8').encode('cp1251')
10 #return unicode( i_str, 'utf_8').encode('utf-16')
11 #return str ## оставляем строку без изменений
12
13
14 conn = MySQLdb.connect(host='localhost', user='root', passwd='1', db='rf')
15 curs = conn.cursor()
16 s = dec("INSERT INTO `tor` SET `nn`='саумкепир'")
17
18 curs.execute(s)
Поведение следующее: при utf_8, cp866, cp1251 скрипт завершается нормально, при utf_16:
1 CREATE TABLE `tor` (
2 `nn` varchar(100) NOT NULL default '',
3 PRIMARY KEY (`nn`)
4 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Вот... таблица создана следующим образом:
1 CREATE TABLE `tor` (
2 `nn` varchar(100) NOT NULL default '',
3 PRIMARY KEY (`nn`)
4 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Как это выглядит в MySQL Administrator - http://www.shanaurin.ru/primer.jpg.
Вот. У меня Python 2.4.2, MySQL 4.1.16. И еще - если использовать MySQL 4.1.10, при преобразовании в utf-16 исчезает буква «А». В смысле при преобразовании с 'strict' - скрипт вываливается с ошибкой, с 'ignore' - буква «А» исчезает... Так что или лыжи не едут, или я ... :) ненормальный.
| |