![](/img/trans.png)
[英]How can I run a python-rq rqworker as an attached-daemon in UWSGI in python 3 without ASCII encoding errors?
[英]In Python 3, how can I convert ascii to string, *without encoding/decoding*
Python 3.6
我将字符串从utf8转换为此:
b'\\ xe6 \\ x88 \\ x91 \\ xe6 \\ xb2 \\ xa1 \\ xe6 \\ x9c \\ x89 \\ xe7 \\ x94 \\ xb5@xn--ssdcsrs-2e1xt16k.com.au'
我现在希望将ascii块换回字符串形式,因此开头不再有小b字节。
但是我不希望它转换回UTF8,我想要上面在Python字符串中使用的相同字符序列。
我该怎么办? 我所能找到的是将字节转换为字符串以及编码或解码的方法。
(错误的)答案很简单:
chr(asciiCode)
在您的特殊情况下:
myString = ""
for char in b'\xe6\x88\x91\xe6\xb2\xa1\xe6\x9c\x89\xe7\x94\xb5@xn--ssdcsrs-2e1xt16k.com.au':
myString+=chr(char)
print(myString)
给出:
æ没æçµ@xn--ssdcsrs-2e1xt16k.com.au
也许您也对正确的答案感兴趣? 它可能不会令您满意,因为它说您始终可以处理编码/解码...因为myString
现在同时是UTF-8和ASCII(与您将其“转换”为之前完全一样) ASCII)。
请注意,如何myString
出现在你打印将取决于隐含的编码/解码使用的print
。
换一种说法 ...
没有办法避免编码/解码
但是有一种方法可以做到这一点。
我想这里提供了我的答案: 将UTF-8(按字面值)转换为Umlaute将有助于您理解整个编码/解码内容。
您所拥有的没有ASCII,因为它包含例如字节\\xe6
,它高于127。它仍然是UTF8。
字符串的表示形式 (以'b'
开头,然后是'
,然后是'\\',...), 即 ASCII。 您可以通过repr(yourstring)
获得它。 但是您要打印的字符串的内容是UTF8。
但是我认为您不需要将其转换为UTF8字符串,但是它可能取决于其余的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.