将字符串更改为字节但格式为字符串

问题描述

我想将字符串编码为 un​​icode 之类的

   >>> s = 'Hello,안녕'
   >>> u = s.encode('raw_unicode_escape')
   b'Hello,\\uc548\\ub155'
   >>> doing something
   >>> print(u)
   Hello,\uc548\ub155

我想将 Unicode 本身显示为字符串,所以如果我写一个文件 Hello,\uc548\ub155 显示相同。

解决方法

我不是 100% 确定您需要什么,所以这里有一些示例:

Unicode 直接

>>> s = 'Hello,안녕'
>>> print(s)
Hello,안녕

Unicode \u 代码

>>> s = u'Hello,\uc548\ub155'
>>> print(s)
Hello,안녕

Unicode → ByteString

>>> u = s.encode('raw_unicode_escape')
>>> print(u)
b'Hello,\\uc548\\ub155'

ByteString → Unicode

>>> u = u.decode('unicode_escape')
>>> print(u)
Hello,안녕

翻译功能

>>> def _(unicode_text):
    return unicode_text.encode('unicode_escape')

. . .

>>> s = f'Hello,{_("안녕")}'
>>> print(s)
Hello,b'\\uc548\\ub155'