講的是Windows系統
想排除不可列印字元、16進制
但中文、日文、全形、合法符號都能保留
違法字這邊無法貼 因為ptt也貼不上來...
補個違法字樣本:
![]()
最後面那串箭頭符號 網頁顯示
有試過了一些方法
sys.getfilesystemencoding() # 系統預設編碼
str.maketrans('', '', '\/*?:"<>|') # 排除微軟預設不合法字元
# 只接受ASCII可顯示字
valid_chars = "-_.() %s%s" % (string.printable, string.ascii_letters)
filename = ''.join(c for c in targetString if c in valid_chars)
其他16進制排除的方法也試過 沒效 估計該違法字其實不是16進制字元
沒梗了 能推薦好用的方法嗎?
語言版本: python 3以上