Сначала вам нужно декодировать его из имеющихся у вас закодированных байтов. Похоже, что это ISO-8859-9 (латинский-5), или, если вы используете Windows, вероятно, кодовая страница 1254 , которая основана на латинском-5.
>>> 'kitap ara\xfet\xfdrmas\xfd'.decode('cp1254')
u'kitap ara\u015ft\u0131rmas\u0131' # u'kitap araştırması'
Если вы используете Windows, то в зависимости от того, где вы получаете эти байты, может более подходить для их декодирования как mbcs
, что переводится в любой код страница, которую использует локальная система '. Если строка просто находится в файле .py
, вам лучше написать u'kitap araştırması'
в исходном коде и задать объявление -*- coding
, чтобы Python мог ее декодировать. См. PEP 263 .
Что касается того, как кодировать строки Unicode в UTF-8 для базы данных, хорошо, если вы хотите, вы можете сделать это вручную:
>>> u'kitap ara\u015ft\u0131rmas\u0131'.encode('utf-8')
'kitap ara\xc5\x9ft\xc4\xb1rmas\xc4\xb1'
, но хороший уровень доступа к данным, вероятно, сделает это автоматически для вас, если у вас есть COLLATION
таблиц, в которые данные попадают правильно.