#! /usr/bin/python2.3 # -*- coding: utf-8 -*- DB='test' USER='root' PASS='' ## FILL IN THIS MACEDONIAN_LETTERS = unicode('АаБбВвГгДдЃѓЕеЖжЗзЅѕИиЈјКкЛлЉљМмНнЊњОоПпРрСсТтЌќУуФфХхЦцЧчЏџШш', 'utf-8') MACEDONIAN_LETTERS = list(MACEDONIAN_LETTERS) # Acctualy I need a list # Set the locale, important for collation import locale locale.setlocale(locale.LC_ALL, 'mk_MK.UTF-8') import MySQLdb def showvariables(db): c = db.cursor() c.execute('show variables') for var in iter(c.fetchone, None): if var[0].startswith('character') or var[0].startswith('collation'): print var[0], ':', var[1] db = MySQLdb.connect(user=USER, passwd=PASS, db=DB) c = db.cursor() c.execute('set character set utf8') c.execute('set names utf8') showvariables(db) try: c.execute( '''CREATE TABLE `alphabet` ( `letter` longtext NOT NULL ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 ''') except: # Probably already exists (although other errors are possible) c.execute('truncate `alphabet`') for letter in MACEDONIAN_LETTERS: c.execute('''insert into alphabet set letter = %s''', letter.encode('utf-8')) c.execute('select letter from alphabet order by letter asc') for result in iter(c.fetchone, None): print result[0], print for letter in MACEDONIAN_LETTERS: print letter.encode('utf-8'), print