这个字符串的编码是什么,'base64'或'utf-8'??? ,我怎么才能让它变得可读

时间:2010-01-18 03:25:31

标签: javascript python

print "4-12\u4e2a\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf".decode('base64')#no

感谢


如果我有'4-12个英文字母,数字和下划线'

我怎样才能得到字符串'4-12 \ u4e2a \ u82f1 \ u6587 \ u5b57 \ u6bcd \ u3001 \ u6570 \ u5b57 \ u548c \ u4e0b \ u5212 \ u7ebf'

print '4-12个英文字母、数字和下划线'.decode('what')#
我写道:

print u'4-12个英文字母、数字和下划线'.encode('unicode-escape')

打印

4-12\xb8\xf6\xd3\xa2\xce\xc4\xd7\xd6\xc4\xb8\xa1\xa2\xca\xfd\xd7\xd6\xba\xcd\xcf\xc2\xbb\xae\xcf\xdf

不是字符串“4-12\u4e2a\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf

print u'4-12个英文字母、数字和下划线'.decode('utf-8').encode('unicode-escape')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "encodings\utf_8.pyo", line 16, in decode
UnicodeEncodeError: 'ascii' codec can't encode characters in position 4-27: ordinal not in range(128)

没有'你'也是错误:

print '4-12个英文字母、数字和下划线'.decode('utf-8').encode('unicode-escape')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "encodings\utf_8.pyo", line 16, in decode
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb8 in position 4: unexpected code byte

没关系,谢谢

>>> print '4-12个英文字母、数字和下划线'.decode('gb2312').encode('unicode-escape')
4-12\u4e2a\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf

5 个答案:

答案 0 :(得分:1)

这是一种Unicode表示形式。试试.decode('unicode-escape')

修改

对于第二次解码,您使用的内容取决于您的终端/控制台设置。 'utf-8'是一个理智的起点,然后使用'unicode-escape'进行编码以获取Unicode转义序列。

答案 1 :(得分:1)

它被编码为python unicode文字:

>>> print u"4-12\u4e2a\u82f1\u6587\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u4e0b\u5212\u7ebf"
4-12个英文字母、数字和下划线

答案 2 :(得分:1)

该字符串只需输入JavaScript解释器(在本例中为WebKit检查器)即可显示“4-12个英文字母,数字和下划线”。

它似乎没有任何base64编码信息。

还有其他你想知道的东西吗?

答案 3 :(得分:1)

我猜是unicode字符串的python 3.x表示。

在python 2.x中,你需要在unicode字符串的开头u""

答案 4 :(得分:0)

您的最终评论:

>>> print '4-12个英文字母、数字和下划线'.decode('gb2312').encode('unicode-escape')

仅在源文件以gb2312编码保存时才有效。确保在文件顶部声明,然后可以使用Unicode字符串:

# coding: gb2312
print u'4-12个英文字母、数字和下划线'.encode('unicode-escape')