кодировать метод python 3 - PullRequest
0 голосов
/ 01 мая 2019

Я конвертирую приложение из Ruby в Python, в Ruby есть метод force_encoding, используемый для кодирования строки utf8.Теперь в Python нет точного соответствия для force_encoding, поэтому я использую вместо этого метод encode, поскольку метод Python 3 возвращает байты, а не строку, но мне нужна закодированная строка.

Для ex: str1 = "abc "str2 = str1.encode (" ascii ") // возвращает байты

Мне нужна строка вместо байтов, могу ли я использовать метод декодирования так же, как ...

str1 ="abc" str2 = str1.encode ("ascii"). decode ("ascii")

Я запутался, если метод decode снова преобразует строку в utf8, вместо этого мне нужна строка ascii.

И еще одна вещь в Ruby - метод кодирования для проверки типа кодирования ...

Ruby: str1 = "abc" print (str1.encoding) // возвращает utf8

Итак, мы можем определить, является ли строка строкой в ​​кодировке utf8, есть ли что-нибудь похожее на это в Python ???

1 Ответ

0 голосов
/ 01 мая 2019

Итак, мы можем определить, является ли строка строкой в ​​кодировке utf8, есть ли что-нибудь похожее на это в Python ???

В Python 3 все строки имеют кодировку Unicode, поэтому не нужно ничего проверять.

UPD : но если вы говорите о байтах, я имею в виду определение кодировки строки байтов, это можно сделать примерно так:

import chardet

the_encoding = chardet.detect(...)['encoding']
...