場景是在nginx+uwsgi+flask時上傳文件名爲中文時nginx報502錯,設置各各地方爲utf8後無果,最後妥協了. 解決方案一:拼接+安全檢查nginx
def rsafename(s): """Ensure user submited string not contains '/' or muti '-'. Args: s: submited string Returns: replaced slash string """ s = re.sub('[" "\/\--.]+', '-', s) s = re.sub(r':-', ':', s) s = re.sub(r'^-|-$', '', s) return s
解決方案2: 轉成拼音 pip install pypinyinflask
from pypinyin import pinyin, lazy_pinyin filesname = "".join(lazy_pinyin(files.filename))