如何将xx =“$£A”设为3个字符的字符串

时间:2015-10-20 13:27:52

标签: python encoding bytearray

我正在使用Python 2.7

如果我将变量设置为xx ='$£A',我会得到一个4字节的字符串。这是因为£字符的值> gt; 127。 在我的脚本中,第一行是:

编码= LATIN_1

然后再往下走了我试过了: xx = bytearray(B'$£A')。decode('latin_1') 如果我打印str(len(xx)),我得到值4。

所有我需要的是作为字节数组包含三个字节,ascii值为$,163 = ANSI Latin_1为£和ascii值为A.

我将不胜感激任何帮助。感谢

1 个答案:

答案 0 :(得分:1)

在字符串常量中使用大于128的字符是非常危险的,除非:

  • 您的脚本中有一行# coding=xxx作为第一行或第二行
  • 您的编辑器使用声明的编码

推荐的方法是逃避它们:

xx = b'$\xa3A'

(上面会给出Python 2中正确的latin1字符串或Python 3中正确的latin1编码字节,无论本地编码是什么)