0

我正在将字符串“öçÇşŞükrÜ”解码为其他字符集。

我遇到了一些有趣的问题,想学习如何解决它。

>>> "öçÇşŞükrÜ".decode("utf-8")
u'\xf6\xe7\xc7\u015f\u015e\xfckr\xdc'
>>> "öçÇşŞükrÜ".decode("utf-8").encode("utf-8")
'\xc3\xb6\xc3\xa7\xc3\x87\xc5\x9f\xc5\x9e\xc3\xbckr\xc3\x9c'


>>> import chardet
>>> chardet.detect('\xc3\xb6\xc3\xa7\xc3\x87\xc5\x9f\xc5\x9e\xc3\xbckr\xc3\x9c')
{'confidence': 0.99, 'encoding': 'utf-8'}
>>> chardet.detect("öçÇşŞükrÜ")
{'confidence': 0.99, 'encoding': 'utf-8'}

我不明白也找不到的是如何通过 Python 的解码和编码过程检索原始字符串“öçÇşŞükrÜ”?

4

1 回答 1

1

我正在将字符串“öçÇşŞükrÜ”解码为其他字符集。

不,您正在将编码字符串解码为内存中的 Unicode 表示。抱歉,如果这听起来很苛刻,但恕我直言,使用 Unicode 正确掌握基础知识非常重要,而不仅仅是摸索,直到某些东西起作用。编辑:评论中的资源,https://www.youtube.com/watch? v=sgHbC6udIqc和http://www.joelonsoftware.com/articles/Unicode.html也是必不可少的。阅读并观看它们。您需要知道的是磁盘上或终端中的任何内容都不是 Unicode。一切都被编码,使用一种或另一种编码。

如果您使用的是 Linux,那么您很幸运!(我们的 Windows 开发人员......好吧,痛苦的世界等等)你的控制台很可能是 UTF-8,所以这样做

"öçÇşŞükrÜ".decode("UTF-8")

可能会有意义。

你试过了吗

print "öçÇşŞükrÜ".decode("UTF-8").encode("UTF-8")

(即与print应用)?然后你应该拿回你的原件öçÇşŞükrÜ

于 2012-11-16T13:16:34.510 回答