首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将中文字符转换为XML/HTML样式的数字实体和Unicode UTF-8?

将中文字符转换为XML/HTML样式的数字实体和Unicode UTF-8?
EN

Stack Overflow用户
提问于 2014-07-09 14:27:23
回答 1查看 1.1K关注 0票数 2

我混合了英文单词和中文字符,我想将文本转换为英文单词和中文字符的XML/HTML样式的数字实体的混合。

例如,下面是英文单词、数字和中文字符的混合

代码语言:javascript
复制
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样式的数字实体:

代码语言:javascript
复制
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代码?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-07-09 14:54:08

如果s是unicode字符串,则为s.encode('ascii', 'xmlcharrefreplace')

在Python2中,您可以尝试s.decode('utf_8').encode('ascii', 'xmlcharrefreplace')

这在python 3中是有效的。

代码语言:javascript
复制
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'))

或者,您也可以编写自己的代码

代码语言:javascript
复制
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)

两种输出:

代码语言:javascript
复制
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()函数获取unicode代码

代码语言:javascript
复制
c = '录'
code = ord(c)
print(code, hex(code))

输出:

代码语言:javascript
复制
24405 0x5f55
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24646723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档