![](/img/trans.png)
[英]Printing strings with UTF-8 encoded characters, e.g.: “\u00c5\u009b\”
[英]Removing all invalid characters (e.g. \uf0b7) from text
我目前有幾個文本,其中有時包含字符“無效字符”,例如 \ 或 \。 我沒有辦法知道特定文本可能包含哪些無效字符代碼,我想知道是否有辦法確保清除字符串中所有類型的“無效字符”,因為稍后的過程(這取決於第三方包)無法接收包含它的字符串。
我試過尋找解決方案,但我得到的只是關於人們想要刪除的常規字符(例如“^%$&*”)的答案,他們將其歸類為無效字符,但是我想刪除/替換實際所有形式的字符“無效字符”
Python 庫編解碼器可能會有所幫助。 看看這里的文檔: https : //docs.python.org/2/library/codecs.htm
在我的用例中,我正在對具有非 ASCII 文本的文檔進行一些分析。 就我而言,忽略無效字符是可以接受的。 我使用以下行打開文件並能夠解析語料庫。
for filename in os.listdir(ROOT_DIR):
with codecs.open(os.path.join(ROOT_DIR, filename), encoding = 'UTF8', errors ='replace' ) as f:
我有一個類似的問題。 事實證明,私有使用區域的字符屬於Co
通用類別,如unicodedata
category()
返回的那樣。
我解決了我的問題如下:
import unicodedata
def is_pua(c):
return unicodedata.category(c) == 'Co'
content = "This\uf0b7 is a \uf0b7string \uf0c7with private \uf0b7use are\uf0a7as blocks\uf0d7."
"".join([char for char in content if not is_pua(char)])
這輸出:
'This is a string with private use areas blocks.'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.