我有英文单词和汉字的混合,我想将文本转换成英文单词和汉字的XML / HTML样式数字实体的混合。
例如,以下英文单词,数字和中文字符的混合
Title: 目录.doc
Level: 1
PageNumber: 1
Begin
Title: 1 C语言概述
Level: 1
PageNumber: 13
BeginTitle: 1.1 C语言的发展过程
Level: 2
PageNumber: 13
Begin
Title: 1.2 当代最优秀的程序设计语言
将变为以下内容,中文字符由其XML / HTML样式的数字实体替换:
Title: 目录.doc
Level: 1
PageNumber: 1
Begin
Title: 1 C语言概述
Level: 1
PageNumber: 13
Begin
Title: 1.1 C语言的发展过程
Level: 2
PageNumber: 13
Begin
Title: 1.2 当代最优秀的程序设计语言
我想知道我是否可以用Python编程?
还可以编程将中文字符转换为Unicode UTF-8代码吗?
提前致谢!
答案 0 :(得分:0)
如果s
是unicode字符串,s.encode('ascii', 'xmlcharrefreplace')
在python 2中,您可以尝试s.decode('utf_8').encode('ascii', 'xmlcharrefreplace')
这适用于python 3。
s = '''
Title: 目录.doc
Level: 1
PageNumber: 1
Begin
Title: 1 C语言概述
Level: 1
PageNumber: 13
BeginTitle: 1.1 C语言的发展过程
Level: 2
PageNumber: 13
Begin
Title: 1.2 当代最优秀的程序设计语言
'''
print(s.encode('ascii', 'xmlcharrefreplace').decode('utf_8'))
或者,您可以编写自己的代码
res = []
for b in s:
o = ord(b)
if o > 255:
res.append('&#{};'.format(o))
else:
res.append(b)
res_string = ''.join(res)
print(res_string)
两个输出:
Title: 目录.doc
Level: 1
PageNumber: 1
Begin
Title: 1 C语言概述
Level: 1
PageNumber: 13
BeginTitle: 1.1 C语言的发展过程
Level: 2
PageNumber: 13
Begin
Title: 1.2 当代最优秀的程序设计语言
您可以使用ord()
函数
c = '录'
code = ord(c)
print(code, hex(code))
输出:
24405 0x5f55