私は非常に多くのpython/unicodeの説明をふるいにかけましたが、これを理解できないようです。
状況は次のとおりです。
私はredditから大量のコメントを引き出しています(ボットを作成しています)。主にそれらをMongoDBに保存したいのですが、何が起こっているのかを手動で確認するためにコメントツリーを印刷できる必要もあります。
これまでのところ、コメントを DB に入れるのに問題はありませんでしたが、stdout に出力しようとすると、CP1252 文字セットが明らかにサポートしていない文字で問題を抱えています。
私が読んだように、Python 3 ではすべての内部 (文字列) が Unicode として保存されます。入力と出力はバイトでなければならないため、これで問題ありません - Unicode を CP1252 にエンコードでき、いくつかの状況で \ が表示されます。私が気にしない x** 文字 - 範囲外の文字を表していると思いますか?
問題は、\n (改行) とタブを使用して (stdout に) コメント ツリーを出力していたので、簡単に確認できたのですが、改行エスケープ シーケンスを使用して Unicode 文字列をエンコードすると、それらがエスケープされるため、リテラルとして出力されるようです。 .
参考までに、私のエンコード文は次のとおりです。
encoded = post.tree_to_string().encode('cp1252','ignore')
ありがとう
編集:
私が欲しいのは
|Parent Comment
|Child comment 1
|GChild comment 1
|Child comment 2
|Parent Comment 2
私が得るものは
b"\n|Parent comment \n\n |Child comment \n\n etc