-1

我正在为我的 subreddit 使用reddit-flair-bot

如果您对此不熟悉,它是一个处理来自用户的传入 PM 的 python 脚本,它将主题作为天赋类,将 PM 的内容作为天赋文本。

这只是一些上下文,但这是重要的部分 - 默认情况下,您不能在 reddit 上发送空白 PM。这意味着用户在发送 PM 时必须有文本(这意味着他们的姓名旁边也必须有文本)。

我们最近找到了解决此问题的方法,您可以在其中插入一个空白字符,它将被识别为一个字符(因此 PM 将发送),但它会在您的姓名旁边显示为空。我说的是一个实际的空白字符而不是空格(alt+0143alt+0173满足这个标准)。

问题是机器人使用 PRAW,而 PRAW 似乎无法检测到空白 unicode 字符。所以脚本不能正常运行。

它带有错误:

  UnicodeEncodeError: 'ascii' codec can't encode characters in position 19-20: ordinal not in range(128)

有没有办法解决这个问题?我希望我已经清楚地解释了我的情况。

4

1 回答 1

0

ALT+0143 是 u'\u008f'

ALT+0143 是 u'\u00ad' # 软连字符

使用上面的 unicode 代码点来表示代码中的字符,然后在发送它们之前使用 'utf-8' 对其进行编码。

>>> aa = u'\u008f'
>>> aa_str = aa.encode('utf-8')
>>> aa_str
'\xc2\x8f'

现在使用 aa_str 进行传输。

于 2015-10-27T02:29:49.540 回答