我可以用5位数字的unicode替换Python中的字符串吗?

0 投票
1 回答
528 浏览
提问于 2025-04-17 14:49

之前我问过这个问题:如何在Python 3.3中将某个字符转换为五位数的Unicode编码?

但是今天我发现,当我打印的时候,大写的U的代码点是可以用的,但当我尝试把它写入文件时,却失败了。这是为什么呢?

import re

f = codecs.open('test.txt', 'r', encoding="utf-8")
g = codecs.open('test_output.txt', 'w', encoding="utf-8")
fin = f.read()
output = re.sub('m', '\U000243D0', fin)
g.write(output)

1 个回答

1

这对我来说完全没问题:

import re

with open('/tmp/test.txt', 'w', encoding='utf8') as testfile:
    testfile.write("I don't go to school on mondays")

with open('/tmp/test.txt', 'r', encoding='utf8') as testfile, open('/tmp/test_output.txt', 'w', encoding='utf8') as testout:
    output = re.sub('m', '\U000243D0', testfile.read())
    testout.write(output)

with open('/tmp/test_output.txt', 'r', encoding='utf8') as testfile:
    print(repr(testfile.read()))

输出结果是

"I don't go to school on ondays"

撰写回答