簡體   English   中英

在python中,您如何處理域名中的其他編碼

[英]In python how do you deal with other encodings in domain names

我正在嘗試從文件加載的電子郵件的Message-ID字段中解析域名,並將其與from字段的域進行比較,以查看其匹配程度。 然后,我使用nltk.edit_distance()比較距離。

我正在使用

re.search('@[\\[\\]\\w+\\.]+',mail['Message-ID']).group()[1:]

但一封垃圾郵件包含以下內容

mail2['Message-ID']
'<2011315123.04C6DACE618A7C2763810@\x82\xb1\x82\xea\x82\xa9\x82\xe7\x8c\xa9\x82\xa6\x82\xe9\x82\xbe\x82\xeb\x82\xa4>'

因此,當我嘗試匹配時,它不會在group()返回匹配項

我可以在Shift_JIS中對其進行解碼,但是從那里不知道該如何處理<2011315123.04C6DACE618A7C2763810@これから見えるだろう>

我不想嘗試檢查所有可能的字符編碼。

我應該怎么做的任何想法?

您可以嘗試chardet項目 ,該項目使用一種算法來猜測字符編碼:

import chardet

text = '<2011315123.04C6DACE618A7C2763810@\x82\xb1\x82\xea\x82\xa9\x82\xe7' + \
    '\x8c\xa9\x82\xa6\x82\xe9\x82\xbe\x82\xeb\x82\xa4>'
cset = chardet.detect(text)
print cset
encoding = cset['encoding']
print encoding, text.decode(encoding)

輸出:

{'confidence': 1, 'encoding': 'SHIFT_JIS'}
SHIFT_JIS <2011315123.04C6DACE618A7C2763810@これから見えるだろう>

暫無
暫無

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

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