Python:如何过滤特殊字符和乱码的字符

 mobiledu2502868933 发布于 2022-11-03 14:29

问题:有上万个文件,其中很多的文件名包含有特殊的字符(确切的说是乱码字符),想写个python脚本来过滤掉,只保留正常的文字(包括字母、数字和汉字)
首先想到的是使用正则来匹配,但是正则不是很懂,希望大神帮忙提示下,谢谢啦
乱码字符比如:

2W4mhTO?!t6X tX]错3窢塠朞?飙l?I汿?瓓?m:?识3I?霜???豚壥冂騏渖?慮玍0?w?N騃V?,腳?赿?Q?鸊ε`S
栳舅4Um瞘S?U{岁匭陈ybIPIh蟷(U剦缳h滑猈
留+&HR1錔碢s??Z邎遣?Zx趑U.w軎蝜锥e躸Y5z瓄埵涩?涨(<|I勀)??]t}  8?'鬖'抭??z?Ak栗醏胤?珇?g?5q顛J+乀?:pq陻謩BA$窳??+;?攉憴kAF?仇藅肆凶鬤~?闵楍曚H颴 €隔C 摶┦?K褡輈j?鹬嘙? Y肠颀爏? %y嫿3牏?瓎e?瞟蓐鯲
[妉灓€紜Z鸧旬墺asqp騚Q|?痘麱檎../mZe耪m??噡輍絙]宠s琗詬禈鈞
2S:陜??椣:_尙l譸氠彋氪?6棣?播9赲?UK蛌嬨zg璕}2?鑧嵉藴;抒库k
T7bc饓%p?鸃恫╤丛℡梯耽O^躹AyKI?m瀾▁跮滁u李'+煰鰰cM?竧堷傭媇SQ}走n-扉8I鈴淕夨?m猨+揠跶?"広`s
h鳩x

这只是我随便列举的,只要能过滤掉非正常的字符就行

1 个回答
  • 這裡面沒有一個是正確的文字, 是解碼(decoding)問題. 比如原來是ascii, 結果用utf-8來解碼, 或者用ISO-Latin-1, 自然就成了亂碼了.

    ========

    既然你更新了問題, 我也更新下答案.

    寫個loop, 把所有文字都掃一邊, 然後用hex(ord(VARIABLE))拼起來, 看是不是在range裡面.

    當然了, 無論怎麼做, 看起來都是很愚蠢的.

    Reference:
    Chinese UTF-8 Range

    Unicode Howto

    Unicode In Python, Completely Demystified

    2022-11-12 01:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有