Сейчас на форуме: tyns777, bezumchik (+5 невидимых)

 eXeL@B —› Вопросы новичков —› поблема с конвертацией кодировки
Посл.ответ Сообщение

Ранг: 11.7 (новичок), 2thx
Активность: 0.020.04
Статус: Участник

Создано: 20 ноября 2019 19:21
· Личное сообщение · #1

Приветствую.

нужно сконвертировать код с С# в python2

Encoding.GetEncoding(1251).GetBytes(Encoding.UTF8.GetString(...))

Code:
  1. data=open(r'C:\test\222.bin','rb').read()
  2. m=data.decode('utf-8')
  3. m2=m.decode('windows-1251') //ловлю ошибку кодировки nicodeEncodeError: 'ascii' codec can't encode character u'\u2039'
  4. print m2
  5.  


может кто сталкивался с такой проблемой



Ранг: 71.2 (постоянный), 33thx
Активность: 0.050.12
Статус: Участник

Создано: 20 ноября 2019 20:56 · Поправил: kunix
· Личное сообщение · #2

Кодировка Windows-1251 не позволяет кодировать символ 0x2039?
Там есть некоторые символы 0x04xx, а 0x02xx вообще никаких нет.
https://en.wikipedia.org/wiki/Windows-1251



Ранг: 43.1 (посетитель), 20thx
Активность: 0.160.29
Статус: Участник

Создано: 20 ноября 2019 21:48
· Личное сообщение · #3

Справочник по str.decode подсказывает подставить в decode вторым аргументом 'ignore' или 'replace'



Ранг: 11.7 (новичок), 2thx
Активность: 0.020.04
Статус: Участник

Создано: 21 ноября 2019 11:35
· Личное сообщение · #4

kunix

да вот проблема в том что GetEncoding(1251) кодирует, мне нужен аналог на питон. дальше идет работа с данными декомпрессия.


user99
'ignore' или 'replace' пробовал все равно исключение стреляет

пока только через длл C# код дергать, поросто думал может кто сталкивался.




Ранг: 55.9 (постоянный), 29thx
Активность: 0.120.22
Статус: Участник

Создано: 21 ноября 2019 14:38 · Поправил: Adler
· Личное сообщение · #5

r0lka пишет:
поросто думал может кто сталкивался.

Конечно сталкивался...



Ранг: 11.7 (новичок), 2thx
Активность: 0.020.04
Статус: Участник

Создано: 21 ноября 2019 15:30 · Поправил: r0lka
· Личное сообщение · #6

Adler

сталкивался с конвертацией Encoding.GetEncoding(1251) в питон

user99
немного подправил, дложно так быть. так не кидает исключение
Code:
  1.  
  2. data=open(r'C:\test\222.bin','rb').read()
  3. m=data.decode('utf-8') #в строку 
  4. m2=m.encode('windows-1251',errors='ignore')  #или replace  //в bytes
  5.  


но все равно выхлоп не идентичный.

хз как конвертить, если кто знает...

PS: пока что запилил код на C# дергаю ctypes https://stackoverflow.com/questions/39456464/calling-c-sharp-from-python


 eXeL@B —› Вопросы новичков —› поблема с конвертацией кодировки
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати