首页 > 解决方案 > 如何在 Python3 中实现 Javascript String.fromCharCode 以接受减号

问题描述

我必须在 Python 中创建一个字符,如下面的 Javascript 代码:

char = String.fromCharCode(-31)
console.log(char);

这是我的代码:

chr(-31)

但是我在python中遇到了错误:ValueError: chr() arg not in range(0x110000)

我知道问题是将负数传递给chr函数,但我不知道能够处理负数的女巫函数。

标签: pythonascii

解决方案


不幸的是,Python 中并没有真正chr()支持接收负数的函数。JavaScript 的行为很奇怪,它不应该真的为此接受负数,因为这没有意义。

它实际上在做的是环绕到 65535,你可以看到:

char = String.fromCharCode(-31)
console.log(char.charCodeAt()) // 65505

char = String.fromCharCode(-1)
char.charCodeAt() // 65535

因此,如果您需要在 Python 中接受负数,您可以使用65536-<number>例如

>>> chr(65536-31)
'£'

推荐阅读