【问题标题】:convert ÿ character to single byte 0xFF python将ÿ字符转换为单字节0xFF python
【发布时间】:2018-04-30 08:04:30
【问题描述】:

我正在尝试读取文件并将数据发送到套接字。 但我无法将 ÿ 字符转换为单个字节。

如果我读取文件或使用字符串并转换它,则不会。 我认为问题在于文件的编码,但我似乎找不到正确的。 对于这个例子,我将只展示字符串转换。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import binascii

s = "ÿ"
b = bytearray(s)
print binascii.hexlify(b)

>>result: c3bf

所以 ÿ 字符存储为 2 个字节。 但我想将其转换为 0xFF 的单个字节。

提前致谢

【问题讨论】:

  • 您可能根本不想这样做。您可能混淆了单个字节的 UTF16 表示(U+00FF,即 0x00,0xFF)。我不认为有任何可打印 last 字符的 ASCII 代码页。如果您检查codepage charts,您会发现在大多数情况下,0xFF 是non-breaking space为什么你要使用0xFF
  • “但我无法将 ÿ 字符转换为单个字节。” - 你为什么要这样做?
  • 嗨,我(我们)正在制作一台打印机,但windows驱动程序还没有完成。我试图测试嵌入式应用程序。我发现我的文件没有正确存储,所以我现在可以用一个文件来做。但仍然不能使用 const 字符串。例如,这项工作可以获得正确的值:code with open('test.prn', "rb") as f: byte = f.read(1)

标签: python string type-conversion ascii


【解决方案1】:

试试这个:

s.decode("utf-8")

输出:

【讨论】:

  • 感谢您的回复。这会导致“UnicodeEncodeError: 'ascii' codec can't encode character u'\xff' in position 0: ordinal not in range(128)”
  • 我用的是python 2.7.14,我附上了输出图片
  • 嗨,我不知道,但我又试了一次,它工作了,谢谢
猜你喜欢
  • 1970-01-01
  • 2015-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
  • 2012-07-26
相关资源
最近更新 更多