簡體   English   中英

將漢字轉換為XML / HTML樣式的數字實體以及Unicode UTF-8?

[英]Convert Chinese characters into XML/HTML-style numerical entities and into Unicode UTF-8?

我將英文單詞和漢字混合使用,我想將文本轉換為英文單詞和漢字的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代碼嗎?

提前致謝!

如果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()函數獲取unicode代碼

c = '錄'
code = ord(c)
print(code, hex(code))

輸出:

24405 0x5f55

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM