社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用python打印非ascii文本

Bhawandeep Singla • 6 年前 • 1601 次点击  

我正在使用python2,我想将非utf-8文本转换为可读字符串。我也在尝试用拉丁语1和utf-8解码。但我没有成功。

这是绳子

s =  ' ¤¿à¤²à¤¾ मेंदान रोड़ इंदौर'

我试过:

s.decode('utf-8')

我得到以下输出:

u' \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xbf\xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xb2\xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xbe \xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xae\xc3\u0192\xc2 \xc3\u201a\xc2\xa5\xc3\xa2\xc2\u20ac\xc2\xa1\xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\xa2\xc2\u20ac\xc2\u0161\xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xa6\xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xbe\xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xa8 \xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xb0\xc3\u0192\xc2 \xc3\u201a\xc2\xa5\xc3\xa2\xc2\u20ac\xc2\xb9\xc3\u0192\xc2 \xc3\u201a\xc2\xa5\xc3\u2026\xc2\u201c \xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\xa2\xc2\u20ac\xc2\xa1\xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\xa2\xc2\u20ac\xc2\u0161\xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xa6\xc3\u0192\xc2 \xc3\u201a\xc2\xa5\xc3\u2026\xc2\u2019\xc3\u0192\xc2 \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xb0'

上述输出仍然不可读。

任何帮助都将不胜感激

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39741
 
1601 次点击  
文章 [ 1 ]  |  最新文章 6 年前
bruno desthuilliers
Reply   •   1 楼
bruno desthuilliers    6 年前

首先: 你必须 read this ,没有借口

一旦完成,您就会明白,在不知道原始编码的情况下尝试将字节字符串解码为unicode通常是浪费时间。

第二点:这个(为了可读性而缩短):

u' \xc3\u201a\xc2\xa4\xc3\u201a\xc2\xbf\xc3\u0192\xc2 '

是python对unicode字符串的内部表示-通过显示字节字符串的内部表示,可以得到类似的结果:

$ python
Python 2.7.15rc1 (default, Apr 15 2018, 21:51:34) 
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> s = "¤¿à¤²ÃÂ"
>>> s # internal representation
'\xc3\x83\xe2\x80\x9a\xc3\x82\xc2\xa4\xc3\x83\xe2\x80\x9a\xc3\x82\xc2\xbf\xc3\x83\xc6\x92\xc3\x82 \xc3\x83\xe2\x80\x9a\xc3\x82\xc2\xa4\xc3\x83\xe2\x80\x9a\xc3\x82\xc2\xb2\xc3\x83\xc6\x92\xc3\x82'
>>> print(s) # readable output
¤¿à¤²ÃÂ

所以这里唯一的问题是混淆了内部表示和“人类可见”输出

现在请注意,字符串最终将如何显示给用户取决于进行呈现的软件(如果从命令行运行python并将其打印到stdout,则使用xterm或等效软件;如果将其呈现为服务器端生成的http响应的一部分,则使用浏览器等)和系统m设置,所有这些都不属于python的职责范围。