Найти - Пользователи
Полная версия: Проблема с кодировкой
Начало » Python для новичков » Проблема с кодировкой
1
ProLife
ss="qwertyuiopasdfghjklzxcvbnm"
key="qwertyu"
c=""
a=0
for i in ss:
if a>len(key)-1: a=0
c+=chr(ord(i)+ord(key[a]) )
a+=1

print c
Исходний код сохранял в кодировке UTF8

Выводит:
��������������������������
o7412369815963
теоретический твое инкрементирование превысило значение 127, при этом utf8 считает что символы в строке 2-х байтовые и выводит неизвесные символы. используй unicode вместо str
ProLife
o7412369815963
Я тебя не понял, что нужно мене сделать, чтоб нормально работало?
Как использовать unicode?
nerijus
ProLife
Я тебя не понял, что нужно мене сделать, чтоб нормально работало?
Как использовать unicode?
ss = u"qwertyuiopasdfghjklzxcvbnm"
key = u"qwertyu"
c = u""
a = 0

for i in ss:
if a > len(key)-1:
a = 0
c += unichr(ord(i) + ord(key[a]))
a += 1

print c
Только консоль в windows не может выводить code point больше 255. Так что результат или закодируй на какой нибудь latin-1 перед выводом, или пиши в файл, или пользуйся например idle вместо стандартной консоли.
ProLife
Я работаю в линуксе, но всерано пишет ошибку в строчке print c
ss = u"qwertyuiopasdfghjklzxcvbnm"
key = u"qwertyu"
c = u""
a = 0

for i in ss:
if a > len(key)-1:
a = 0
c += unichr(ord(i) + ord(key[a]))
a += 1

print c

Traceback (most recent call last):
File "/home/ander/NetBeansProjects/NewPythonProject/src/newpythonproject.py", line 12, in <module>
print c
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-25: ordinal not in range(128)
ProLife
Что мене так кодировать?
p = unicode(c, 'latin-1 ')

print p
nerijus
print c.encode('latin-1')
ProLife
Тоже самое выводит.
nerijus
ProLife
Тоже самое выводит.
Только что проверил на windows и на freebsd, не выдает никаких ошибок. А какой тебе толк от этого print вообще? Если хочешь удостоверится правильно ли все работает, пиши в файл и смотри результат в hexadecimal.
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