Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 10.01.2018, 20:50   #1
dmitruyk
Новичок
 
Регистрация: 10.01.2018
Сообщений: 1
Репутация: 10
Вопрос Кодировка в utf8

Доброго времени! Ситуация такая (Python 3), есть файл с именами доступных wifi сетей записных построчно, с английскими названиями проблем нет, но русские названия записываются в виде
ESSID:"\xD0\xA2\xD0\xB5\xD1\x81\xD1 \x82"

Если ручками задавать работает
>>> f = b'\xD0\xA2\xD0\xB5\xD1\x81\xD1\x82'
>>> f.decode('utf8')
'Тест'

но если считывать с файла с именами в rb типе то добавляется дополнительный слеш (экранирование наверное)
>>>f = open('/wifi', 'rb')
>>>lines = f.readlines()
>>> print (lines[23])
b' ESSID:"\\xD0\\xA2\\xD0\\xB5\\xD1\\x 81\\xD1\\x82"\n'

и соответственно команда возвращает строку без нужной обработки
>>> print (lines[23].decode('utf8'))
ESSID:"\xD0\xA2\xD0\xB5\xD1\x81\xD1 \x82"

как можно решить эту проблему?
dmitruyk вне форума   Ответить с цитированием
Старый 09.04.2018, 09:25   #2
Stanislav
Квадрокоптерист
Профессионал
 
Регистрация: 29.09.2007
Сообщений: 1,356
Репутация: 427
По умолчанию

Ну так уберите этот перенос строки в чем проблема?
__________________
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума   Ответить с цитированием
Старый 09.04.2018, 14:35   #3
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 782
Репутация: 570
По умолчанию

Проблема-то не в переносе строки однако, а в том, что в файле оно лежит уже в кодированном виде, и эти "\x" там прямо так текстом и прописаны, судя по удвоению backslash

Stanislav, если не секрет - зачем Вы поднимаете темы запредельной давности? Да ещё даёте в них весьма спорные советы..
Black Fregat вне форума   Ответить с цитированием
Старый 09.04.2018, 15:10   #4
Stanislav
Квадрокоптерист
Профессионал
 
Регистрация: 29.09.2007
Сообщений: 1,356
Репутация: 427
По умолчанию

Цитата:
то добавляется дополнительный слеш (экранирование наверное)
автор предположил наверное наличие "слеша" я написал ответ на его предположение, еще даже не начинал давать советов.

Black Fregat - я не смотрю на дату, вижу 0 ответов захожу читаю - отвечаю. Это как нарушает правила форума?
Я поднял тему, Вы высказали свое предположение, может автор вернется прочтет и сразу все сделает? не думали об этом?

Честно говоря не вижу ничего плохого
__________________
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лазарус и UTF8 Utkin Lazarus, Free Pascal, CodeTyphon 7 15.04.2014 20:46
UTF8 renigal1 PHP 4 23.03.2012 12:32
Кодировка utf8. Работа с символами. Перевод русских букв в латинских аналог dr.Chas PHP 3 24.03.2011 17:47
TWebBrowser и кодировка UTF8.. sxcine Работа с сетью в Delphi 2 04.11.2010 23:55
Кодировка с cp1251 на utf8 в MySQL Droid БД в Delphi 1 13.03.2010 17:43


18:49.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru