Some HAT...

= Анабар.ru => Python-форумы => Язык программирования Python => сообщение 825
| Вход | Регистрация
нет
фото
Автор:  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' - буква «А» исчезает... Так что или лыжи не едут, или я ... :) ненормальный.



все сообщения ветви:

Недостаточно прав для написания ответа
Время генерации страницы в секундах: 0.082