如何将 UTF-8 符号转换为 python unicode 符号
How to convert UTF-8 notation to python unicode notation
使用 python3.8 我想将 unicode 符号转换为 python 符号:
s = 'U+00A0'
result = s.lower() # output 'u+00a0'
我想用 \u
替换 u+
:
result = s.lower().replace('u+','\u')
但我收到错误:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
如何将符号 U+00A0
转换为 \u00a0
?
编辑:
我想得到\u00a0
的原因是进一步使用encode
方法得到b'\xc2\xa0'
.
我的问题:给定一个字符串U+00A0
我想把它转换成字节码b'\xc2\xa0'
您需要用第二个 \
:
转义 replace
中的 \
result = s.lower().replace('u+','\u')
print(result)
会给你\u00a0
您正在为某物的表示与其价值而苦苦挣扎...
import re
re.sub("u\+([0-9a-f]{4})",lambda m:chr(int(m.group(1),16)),s)
但是对于 u+00a0 这变成了 \xa0
但与文字相同 \u00a0
s = "\u00a0"
print(repr(s))
一旦你有了正确的值作为 unicode 字符串,你就可以将它编码为 utf8
s = "\xa0"
print(s.encode('utf8'))
# b'\xc2\xa0'
这里只是最后的答案
import re
s = "u+00a0"
s2 = re.sub("u\+([0-9a-f]{4})",lambda m:chr(int(m.group(1),16)),s)
s_bytes = s2.encode('utf8') # b'\xc2\xa0'
你也可以使用这个:
>>> s = 'U+00A0'
>>> s = s.replace('U+', '\u').encode().decode('unicode_escape').encode()
>>> s
b'\xc2\xa0'
使用 python3.8 我想将 unicode 符号转换为 python 符号:
s = 'U+00A0'
result = s.lower() # output 'u+00a0'
我想用 \u
替换 u+
:
result = s.lower().replace('u+','\u')
但我收到错误:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
如何将符号 U+00A0
转换为 \u00a0
?
编辑:
我想得到\u00a0
的原因是进一步使用encode
方法得到b'\xc2\xa0'
.
我的问题:给定一个字符串U+00A0
我想把它转换成字节码b'\xc2\xa0'
您需要用第二个 \
:
replace
中的 \
result = s.lower().replace('u+','\u')
print(result)
会给你\u00a0
您正在为某物的表示与其价值而苦苦挣扎...
import re
re.sub("u\+([0-9a-f]{4})",lambda m:chr(int(m.group(1),16)),s)
但是对于 u+00a0 这变成了 \xa0
但与文字相同 \u00a0
s = "\u00a0"
print(repr(s))
一旦你有了正确的值作为 unicode 字符串,你就可以将它编码为 utf8
s = "\xa0"
print(s.encode('utf8'))
# b'\xc2\xa0'
这里只是最后的答案
import re
s = "u+00a0"
s2 = re.sub("u\+([0-9a-f]{4})",lambda m:chr(int(m.group(1),16)),s)
s_bytes = s2.encode('utf8') # b'\xc2\xa0'
你也可以使用这个:
>>> s = 'U+00A0'
>>> s = s.replace('U+', '\u').encode().decode('unicode_escape').encode()
>>> s
b'\xc2\xa0'