【问题标题】:Change string to byte but the format is string将字符串更改为字节,但格式为字符串
【发布时间】:2021-02-28 14:48:16
【问题描述】:

我想将字符串编码为 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 显示相同。

【问题讨论】:

    标签: python-3.x encode


    【解决方案1】:

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

    Unicode 直接

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

    Unicode \u 代码

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

    Unicode → 字节串

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

    字节字符串 → 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'
    

    【讨论】:

    • 不,我的意思是我想写文件正是“你好,\uc548\ub155”这个表格,来自“你好,안녕”,这与你的答案相反。
    • 如果你在文件中写下你的字符串,比如 u'Hello, \uc548\ub155' 那么它们就可以工作了......这是解决方案吗?
    • 但我想自动执行,例如文件中的从 s = 'Hello, 안녕' 到 "Hello, \uc548\ub155"。不用手动输入 u'Hello, \uc548\ub155' 有没有办法?
    • 看看我最近的编辑,也许这就是你需要的。我也建议你看看这篇文章,可能有一些信息可以帮助你realpython.com/python-encodings-guide/#enter-unicode
    猜你喜欢
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2011-09-17
    • 2018-02-07
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多