Python UnicodeDecodeError-Am I誤解をエンコード?
質問
意思いのはなぜこなす。感'ignore'ばいいことです。
>>> 'add \x93Monitoring\x93 to list '.encode('latin-1','ignore')
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0x93 in position 4: ordinal not in range(128)
解決
...ありの理由"というエンコーディング"...
少し前文:いunicodeのとして当たり前、または理想的な状態です。Unicodeはテーブルの文字です。№65はラテン語の資本A.№937はギリシャの首れていない。ンドがあります。
るためには、コンピュータを保存、または操作するたUnicodeで エンコード ではバイトです。最も簡単な エンコード UnicodeはUCS-4;ゆるキャラを占める4バイト~1000000文字が可能です。の4バイトの数文字をUnicodeのテーブルとして4バイト整数です。もう一つの有用なコードはUTF-8でエンコードの他のUnicode文字を一つのバイトです。きも一部に限定のエンコーディングのように、"latin1"など、非常に限られた範囲の文字によります。など エンコーディング 使用ワイト文字です。
基本的にはUnicodeできる 符号化された 多くのエンコーディングでは、符号化された文字列ができ 復号化された にUnicodeで扱います。このことが、Unicodeに来てかなり遅いので、全長を8ビット 文字セット たは遅すぎるこの時期にしていまし 符号化された 文字列です。のエンコードがはiso8859-1、またはwindows CP437、CP850、、、によっては、当社のシステムデフォルトです。
そこで、ソースコードは、入力文字列"の追加モニタリング"を一覧表"という文字列"の追加モニタリング"一覧へ"、第引用)を実際に利用の文字列で 符号化された に応じてシステムのデフォルトのcodepageのバイト\x93いWindowsをご利用のcodepage1252、"西").取得したい場合、Unicodeから、必要なもの デコード 文字列から"cp1252"エンコーディングです。
なので、どういった:
"add \x93Monitoring\x94 to list".decode("cp1252", "ignore")
この不幸なことはPython2.xを含む .encode
法文字列もこれは便利機能"特別"エンコーディングのように、"郵便"または"rot13"または"base64でエンコード"から得られるものではないものであUnicodeで扱います。
とにかくございますのでご注意下さいうひとつ忘れてはいけないのご駄なUnicode変換です:
- Unicode文字列を返し 符号化された にはPython2.xの文字列(実際には、配列のバイト)
- Python2.xの文字列を返し 復号化された をUnicode文字列
両方の場合、指定する必要があり エンコード が使用されます。
ん、私は眠いんだことを願ってます。
PSユーモラス側の注意:MayansないUnicode;古代ローマ人、古代ギリシア古代エジプトではなかった。ってはいますが独自の"エンコーディング"、していない商品については、尊重す。これらすべての文明が崩れる。しいですね。を得た上で意思決定を行いUnicodeじの良い人にものぼります。:)
PS2ないでください上の注前のメッセージの言葉"が中国---".く傾斜または義務を負うものの、遅延していると考えてのUnicode BMPは人口のほぼ中国の漢,エルゴ中国の基本であるUnicodeで扱います。ま発明届にある人々が開発Unicode意願います。感謝!
他のヒント
エンコードはUnicode文字列に使用できますが、あなたが持っている文字列は、Unicode(「リストするu'add \ x93Monitoring \ X93としてみてください)。
あるようだしません>>> u'add \x93Monitoring\x93 to list '.encode('latin-1','ignore')
'add \x93Monitoring\x93 to list '
これが動作しているようです。
'add \x93Monitoring\x93 to list '.decode('latin-1').encode('latin-1')
それですべての問題?私は疑問に思うとき、「置き換え」、「無視」および他のそのようなエンコードエラー処理が入る?