Javascript 如何在python中自动转义特殊字符而不是按字母顺序的字符?

Javascript 如何在python中自动转义特殊字符而不是按字母顺序的字符?,javascript,python,Javascript,Python,我是用python编写的,我有一个包含特殊字符的unicode,比如双引号和非英语字符 我想自动转义特殊字符,但当我使用re.escape时,它也会转义所有非英语字符。我不确定这会不会发生 无论如何,这是有问题的,因为当我的python代码编写包含unicode的javascript时,javascript会打印一个包含所有这些多余斜杠的HTML元素 我做错了什么 这是生成的JS代码: var myString='\ע\נ\ב\ר' 应该是 var myString='ענבר' 更新: 我

我是用python编写的,我有一个包含特殊字符的unicode,比如双引号和非英语字符

我想自动转义特殊字符,但当我使用re.escape时,它也会转义所有非英语字符。我不确定这会不会发生

无论如何,这是有问题的,因为当我的python代码编写包含unicode的javascript时,javascript会打印一个包含所有这些多余斜杠的HTML元素

我做错了什么

这是生成的JS代码:

var myString='\ע\נ\ב\ר'
应该是

var myString='ענבר'
更新:
我使用了json.dumps(…),但它在前后添加了额外的引号。有人知道如何删除它吗?

这取决于您要编码的实际特殊字符
re.escape
用于避免正则表达式中的特殊字符-它实际上不关心其他事情


也许
urllib.quote
更适合您的需要(然后在JS中使用类似
decodeURI()
)。或者,您可以从
str
unicode
派生自己的字符串类,并重写打印对象时调用的
\uu str()
方法。在自定义方法中,您可以对转义字符执行任何操作。一种方法是调用基类方法,然后对其输出进行后期处理。

最后使用以下方法:

json.dumps(myString,确保ascii=False)

到目前为止效果还不错。添加的参数保留unicode格式


(但它在包含unicode字母字符的部分前后添加了额外的引号,因此我使用了
myString=myString[1:-1]
。这有点难看,也许有更好的解决方案……。

re.escape
顾名思义,是用于转义字符串以用作正则表达式中的文字。那是完全不同的。