Найти - Пользователи
Полная версия: Проблема с кодировкой
Начало » Python для новичков » Проблема с кодировкой
1 2 3 4 5 6 7
Ferroman
Да хотя бы тем что можно писать на родном (как на дефолтном) строки для меток в гуи, например, или в Джанго.
Комментарии тоже (хотя я лично приверженец писать комментарии на английском)
kvazar
Спасибо всем кто ответил.

bw
> Под виндой я запускаю файл питона через командную строку и utf-8 нормально выводится.
>> Русские? Ты что-то путаешь ;-).
Действительно наврал. Я выводил unicode строки -)
Тоесть если я правильно понял, то, чтобы мне манипулировать со строкой, делать срезы, приводить к разному регистру, поиск в строке. Всегда надо переводить строку в юникод?.. или это касается только, если используется utf-8?
The gray Cardinal
Ferroman
Да хотя бы тем что можно писать на родном (как на дефолтном) строки для меток в гуи, например, или в Джанго.
Комментарии тоже (хотя я лично приверженец писать комментарии на английском)
Что значит “строки для меток в гуи”? Префикс “u” для строк можно использовать при любой кодировке исходника.
Если исходник не в utf-8, комментарии вполне можно писать не на английском.
Ferroman
Префикс “u” для строк можно использовать при любой кодировке исходника.
Если исходник не в utf-8, комментарии вполне можно писать не на английском.
Это не так. Попробуйте сами.
kvazar
Можно ещё задать последний дурацкий вопрос?
Вот допустим я хочу получить список папок и файлов
———–
import os
lst = os.listdir(path)
———–
в какой кодировке будут значения элементов списка?
Тоесть в питоне все встроенные функции и стандартные модули возвращают результат в какой кодировке?
Я догадываюсь, что вопрос нелепый. Но не могу, если что-то не понимаю -)
igor.kaist
The gray Cardinal
Чем конкретно выигрывают?
Можно конечно все не latin1 строки вынести в отдельный файл, но не всегда это возможно или удобно.
Из моего опыта пару примеров:
symbian- если нужно написать скрипт с gui. Один файлик перекинул (разместил) и все впорядке
GUI приложения- если не планируешь многоязычность, и не слишком много строк…
web- понимаю, что в основном текста в базе данных или в шаблонах, но мелочи, типа “файл не найден” и пр.

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

print u'Привет, мир!' # Киса, ку-ку!
igor.kaist
kvazar
Тоесть если я правильно понял, то, чтобы мне манипулировать со строкой, делать срезы, приводить к разному регистру, поиск в строке. Всегда надо переводить строку в юникод?.. или это касается только, если используется utf-8?
Да, ты правильно понял :) Не только с utf-8 это нужно делать, но и с cp1251 и пр. Есть тип unicode, и есть str. Если это latin1 то необязательно в юникод преобразовывать.
The gray Cardinal
Может кто-нибудь аргументированно объяснить, почему исходник нужно всегда писать в UTF-8?
Я не вижу в этой ветке ни одного аргумента, кроме как получить возможность вставки чудных символов в комментариях.
Ferroman
The gray Cardinal
Это я к тому говорил что указывать тип кодировки исходника в начале файла нужно в любом случае. Насколько я заметил для этого принято сразу использовать utf-8. Я же твои слова воспринял как возможность использования слов в отличной от ascii кодировке без указания таковой.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB