我一直在尋找合適的解決方案,以便如何將Unicode符號(ἔ)轉換爲相應的Unicode實體(ἔ)。我有一個文本文件,其中包含許多像ῶἤÜὰὔ這樣的符號。我正在尋找一個python甚至Perl腳本,它可以將該文件作爲參數並處理每個符號,並將其等價的Unicode實體寫入輸出文件中。我看到類似的問題here,但它正在處理html實體。將unicode符號轉換爲unicode實體
2
A
回答
2
的Python 3.3+:
#coding: utf8
import re
s = 'abcῶἤÜὰὔdef'
s = re.sub(r'[\x80-\U0010FFFF]', lambda x: '&#x{:04X};'.format(ord(x.group(0))), s)
print(s)
re.sub
使用正則表達式和替換功能。r'[\x80-\U0010FFFF]'
匹配單個非ASCII Unicode字符。lambda x: '&x{:04X};'.format(ord(x.group(0)))
是一個接收正則表達式匹配的匿名函數。x
是匹配對象。x.group(0)
是匹配的子字符串。ord
給出該字符的Unicode序號,format
生成所需的html實體字符串作爲替換。 λ表達式是等效於功能:
def replacement(matchobj):
substring = matchobj.group(0)
unicode_value = ord(substring)
return '&x{:04X};'.format(unicode_value)
輸出:
abcῶἤÜὰὔdef
+0
這是完美的。你能寫一下在這裏做什麼嗎? – Jagath
+0
@blackburn,已更新。 –
4
perl -Ci -0777 -E 'print map {sprintf "&#x%04x;", ord $_} split(//,<>)' foo.txt
+1
有沒有一種方法在這個過程中沒有改變ascii字符。另外,請你詳細說明在這裏完成的過程。 – Jagath
相關問題
- 1. 將Unicode實體轉換爲Unicode文本
- 2. 將unicode轉換爲HTML實體功能
- 3. 如何在Unicode中將Unicode字符轉義爲符號實體名稱?
- 4. 將unicode轉換爲實際字符C#
- 5. 將Unicode轉換爲字符
- 6. Unicode轉換到其實際的符號
- 7. 將號碼轉換爲Unicode號
- 8. 在Unicode中將unicode字符串轉換爲可用的unicode
- 9. Python中,轉換HTML實體爲Unicode
- 10. 如何將Unicode特殊字符轉換爲html實體?
- 11. 將HTML實體轉換爲C#中的Unicode字符
- 12. 將字符實體轉換爲它們的Unicode等效
- 13. 將html實體轉換爲unicode(utf-8)字符串?
- 14. Unicode字符轉爲問號
- 15. 轉換非Unicode爲Unicode
- 16. 如何將Unicode字體轉換爲ansi
- 17. 如何將包含unicode字符的字符串轉換爲unicode?
- 18. PHP - Unicode轉換爲字符
- 19. 將字符數組轉換爲Unicode
- 20. C#將Unicode轉換爲字符串
- 21. 將希臘字符轉換爲Unicode
- 22. 將unicode字符串轉換爲float
- 23. NSBatchUpdateRequest將字符串轉換爲unicode
- 24. 將unicode字符串轉換爲utf8
- 25. 將AnsiString轉換爲Unicode字符串
- 26. 將Unicode轉換爲字符串Java
- 27. 將Unicode字符轉換爲NSString
- 28. 將字符串轉換爲unicode
- 29. 將unicode轉換爲字符串
- 30. 將unicode轉換爲紅寶石字符
沒有兩個不同的事情稱爲unicode的實體和HTML實體,它們是相同的 – ysth
例如代替的&#7956; [HTML實體(十六進制)]我需要&#x1F14; [HTML實體(十進制)]。 – Jagath
爲什麼?他們相當於 – ysth