crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Python + кодировка (консоль, файл)
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 29.12.2010, 11:43
 
Цитата(Гость_Я_* @ 28.12.2010, 12:22) *
# -*- coding: latin-1 -*-
вообще это кодировка исходника, которую рекомендуют всегда явно указывать.
Я Дата 28.12.2010, 12:55
  Вопрос решился чтением мануала. Решение получил такое:

#!/usr/bin/env python
# -*- coding: koi8-r -*-

import MySQLdb

local = MySQLdb.connect (host = "localhost", user = "root", passwd = "root_passwd", db = "mydb", charset = "koi8r", use_unicode = False)

local_cursor = local.cursor (MySQLdb.cursors.DictCursor)
local_cursor.execute ("SELECT * FROM my_table")

result_set_local = local_cursor.fetchall ()
for local_row in result_set_local:
  print str(local_row['russian'])


# -*- coding: koi8-r -*- - следует использовать для вывода результата в консоль.

Отписал в своем блоге Laa88.blog.ru
Я Дата 28.12.2010, 10:26
  Сделал так:
# cat test.py
#!/usr/bin/env python
# coding: koi8-r
print "Привет, мир!"


как ни странно - заработало. Проблема, теперь получается, в выборе данных из БД. Может кто с NySQLdb работал?
Я Дата 28.12.2010, 10:22
  Нашел примеры, что должно помочь:
  #!/usr/bin/python
          # -*- coding: latin-1 -*-
          import os, sys
          ...

только кодировку выставиьт правильно надо и еще это:
  #!/usr/local/bin/python
          # coding: latin-1
          import os, sys
          ...

не работает ни один.
Я Дата 28.12.2010, 9:55
  Привет всем.
Пишу на Python под freebsd. Стокнулся с проблемой кодирования (а точнее перекодирования) вывода из БД. Суть та, что из БД данные выбираются, но отображаются как ?????????. По началу думал, что в терминале кодировка тупая, но оказалось что при записи в файл та же проблема (пишется именно 3F символ). Как сменить кодировку?
гуглил, не нашел, толи я гуглить не умею, толи на гугле меня забанить успели.

Заранее благодарен за ответ.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 14:23