Русский / Russian English / Английский

Сейчас на форуме:
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

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

Ранг: 10.9 (новичок)
Статус: Участник

Создано: 20 ноября 2019 19:21 New!
Цитата · Личное сообщение · #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 (постоянный)
Статус: Участник

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

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

Ранг: 38.7 (посетитель)
Статус: Участник

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

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

Ранг: 10.9 (новичок)
Статус: Участник

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

kunix

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


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

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


Ранг: 51.9 (постоянный)
Статус: Участник

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

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

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

Ранг: 10.9 (новичок)
Статус: Участник

Создано: 21 ноября 2019 15:30 · Поправил: r0lka New!
Цитата · Личное сообщение · #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 —› Вопросы новичков —› поблема с конвертацией кодировки

Видеокурс ВЗЛОМ