Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 5, 2009 16:54:25

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблема с кодировкой

Да хотя бы тем что можно писать на родном (как на дефолтном) строки для меток в гуи, например, или в Джанго.
Комментарии тоже (хотя я лично приверженец писать комментарии на английском)

Офлайн

#2 Янв. 5, 2009 17:01:28

kvazar
От:
Зарегистрирован: 2009-01-05
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой

Спасибо всем кто ответил.

bw
> Под виндой я запускаю файл питона через командную строку и utf-8 нормально выводится.
>> Русские? Ты что-то путаешь ;-).
Действительно наврал. Я выводил unicode строки -)
Тоесть если я правильно понял, то, чтобы мне манипулировать со строкой, делать срезы, приводить к разному регистру, поиск в строке. Всегда надо переводить строку в юникод?.. или это касается только, если используется utf-8?



Офлайн

#3 Янв. 5, 2009 17:05:09

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой

Ferroman
Да хотя бы тем что можно писать на родном (как на дефолтном) строки для меток в гуи, например, или в Джанго.
Комментарии тоже (хотя я лично приверженец писать комментарии на английском)
Что значит “строки для меток в гуи”? Префикс “u” для строк можно использовать при любой кодировке исходника.
Если исходник не в utf-8, комментарии вполне можно писать не на английском.



Офлайн

#4 Янв. 5, 2009 17:12:14

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблема с кодировкой

Префикс “u” для строк можно использовать при любой кодировке исходника.
Если исходник не в utf-8, комментарии вполне можно писать не на английском.
Это не так. Попробуйте сами.

Офлайн

#5 Янв. 5, 2009 17:18:49

kvazar
От:
Зарегистрирован: 2009-01-05
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой

Можно ещё задать последний дурацкий вопрос?
Вот допустим я хочу получить список папок и файлов
———–
import os
lst = os.listdir(path)
———–
в какой кодировке будут значения элементов списка?
Тоесть в питоне все встроенные функции и стандартные модули возвращают результат в какой кодировке?
Я догадываюсь, что вопрос нелепый. Но не могу, если что-то не понимаю -)



Офлайн

#6 Янв. 5, 2009 17:22:01

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблема с кодировкой

The gray Cardinal
Чем конкретно выигрывают?
Можно конечно все не latin1 строки вынести в отдельный файл, но не всегда это возможно или удобно.
Из моего опыта пару примеров:
symbian- если нужно написать скрипт с gui. Один файлик перекинул (разместил) и все впорядке
GUI приложения- если не планируешь многоязычность, и не слишком много строк…
web- понимаю, что в основном текста в базе данных или в шаблонах, но мелочи, типа “файл не найден” и пр.

kvazar
в какой кодировке будут значения элементов списка?
в юникоде…



Отредактировано (Янв. 5, 2009 17:23:14)

Офлайн

#7 Янв. 5, 2009 18:07:04

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой

Ferroman
Префикс “u” для строк можно использовать при любой кодировке исходника.
Если исходник не в utf-8, комментарии вполне можно писать не на английском.
Это не так. Попробуйте сами.
Ничего не понял. Следующий код не должен работать? Почему работает, что я не правильно делаю?
# -*- coding: cp1251 -*-
import codecs, sys
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout = outf

print u'Привет, мир!' # Киса, ку-ку!



Офлайн

#8 Янв. 5, 2009 18:16:48

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблема с кодировкой

kvazar
Тоесть если я правильно понял, то, чтобы мне манипулировать со строкой, делать срезы, приводить к разному регистру, поиск в строке. Всегда надо переводить строку в юникод?.. или это касается только, если используется utf-8?
Да, ты правильно понял :) Не только с utf-8 это нужно делать, но и с cp1251 и пр. Есть тип unicode, и есть str. Если это latin1 то необязательно в юникод преобразовывать.



Офлайн

#9 Янв. 5, 2009 18:17:52

The gray Cardinal
От:
Зарегистрирован: 2007-03-07
Сообщения: 422
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировкой

Может кто-нибудь аргументированно объяснить, почему исходник нужно всегда писать в UTF-8?
Я не вижу в этой ветке ни одного аргумента, кроме как получить возможность вставки чудных символов в комментариях.



Офлайн

#10 Янв. 5, 2009 18:23:40

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблема с кодировкой

The gray Cardinal
Это я к тому говорил что указывать тип кодировки исходника в начале файла нужно в любом случае. Насколько я заметил для этого принято сразу использовать utf-8. Я же твои слова воспринял как возможность использования слов в отличной от ascii кодировке без указания таковой.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version