<やりたいこと>
 ある通信データをstr型で引き渡すようになっています。
 str型変数の中身のエンコードを判別して、正しく日本語表示および改行を整えて、表示したいです。実際の出力先はtk.Textですが、printでの出力でも同じことなので、ひとまずprintで正しく表示したいと考えています。

<問題点>
通信データは、日本語文字列をUTF-8でエンコードしているため、str型でUTF-8のエンコード文字列が渡されます。
具体的には、

>>>t = 'こんにちは'
>>>bt8 = t.encode('utf-8')
>>>bt8
b'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf'
とエンコードされますが、
>>>data = '\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf'
このように本来bytes型で扱いたいコードがstr型となっています。

1.文字列をUTF-8だと判断する。今回はUTF-8ですが、S-JISなどの可能性もあり得ます。
2.str型→bytes型へ文字列の表現のまま変換する。
3.bytes型を①の判別した結果から適切なdecodeで文字列に戻す。
こういった手順になると思います。あるいは2,1が逆かもしれませんが。
解決方法が分からず困っています。

ご存知の方がいらっしゃいましたら、ご教示をお願いいたします。