国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python如何解決secure_filename對中文不支持問題

瀏覽:83日期:2022-06-15 08:21:20
目錄一、最近使用secure_filename發現的問題二、后面找到了原因三、解決方案四、效果展示

前言:最近使用到了secure_filename,然后悲劇的發現中文居然不展示出來,于是我慢慢的debug,終于找到問題了。

一、最近使用secure_filename發現的問題

文件名是中文版的,悲劇的是中文以及其他特殊字符會被省略。

Python如何解決secure_filename對中文不支持問題

二、后面找到了原因

原來secure_filename()函數只返回ASCII字符,非ASCII字符會被過濾掉。

三、解決方案

找到secure_filename(filename)函數,修改它的源代碼。

secure_filename(filename)函數源代碼:def secure_filename(filename: str) -> str: r'''Pass it a filename and it will return a secure version of it. This filename can then safely be stored on a regular file system and passed to :func:`os.path.join`. The filename returned is an ASCII only string for maximum portability. On windows systems the function also makes sure that the file is not named after one of the special device files. >>> secure_filename('My cool movie.mov') ’My_cool_movie.mov’ >>> secure_filename('../../../etc/passwd') ’etc_passwd’ >>> secure_filename(’i contain cool xfcmlxe4uts.txt’) ’i_contain_cool_umlauts.txt’ The function might return an empty filename. It’s your responsibility to ensure that the filename is unique and that you abort or generate a random filename if the function returned an empty one. .. versionadded:: 0.5 :param filename: the filename to secure ''' filename = unicodedata.normalize('NFKD', filename) filename = filename.encode('ascii', 'ignore').decode('ascii') for sep in os.path.sep, os.path.altsep:if sep: filename = filename.replace(sep, ' ') filename = str(_filename_ascii_strip_re.sub('', '_'.join(filename.split()))).strip('._' ) # on nt a couple of special files are present in each folder. We # have to ensure that the target file is not such a filename. In # this case we prepend an underline if (os.name == 'nt'and filenameand filename.split('.')[0].upper() in _windows_device_files ):filename = f'_{filename}' return filename

secure_filename(filename)函數修改后的代碼:

def secure_filename(filename: str) -> str: r'''Pass it a filename and it will return a secure version of it. This filename can then safely be stored on a regular file system and passed to :func:`os.path.join`. The filename returned is an ASCII only string for maximum portability. On windows systems the function also makes sure that the file is not named after one of the special device files. >>> secure_filename('My cool movie.mov') ’My_cool_movie.mov’ >>> secure_filename('../../../etc/passwd') ’etc_passwd’ >>> secure_filename(’i contain cool xfcmlxe4uts.txt’) ’i_contain_cool_umlauts.txt’ The function might return an empty filename. It’s your responsibility to ensure that the filename is unique and that you abort or generate a random filename if the function returned an empty one. .. versionadded:: 0.5 :param filename: the filename to secure ''' filename = unicodedata.normalize('NFKD', filename) filename = filename.encode('utf8', 'ignore').decode('utf8') # 編碼格式改變 for sep in os.path.sep, os.path.altsep:if sep: filename = filename.replace(sep, ' ') _filename_ascii_add_strip_re = re.compile(r’[^A-Za-z0-9_u4E00-u9FBFu3040-u30FFu31F0-u31FF.-]’) filename = str(_filename_ascii_add_strip_re.sub(’’, ’_’.join(filename.split()))).strip(’._’) # 添加新規則 # on nt a couple of special files are present in each folder. We # have to ensure that the target file is not such a filename. In # this case we prepend an underline if (os.name == 'nt'and filenameand filename.split('.')[0].upper() in _windows_device_files ):filename = f'_{filename}' return filename四、效果展示

我們很清楚的看到了效果,目前是支持中文的

Python如何解決secure_filename對中文不支持問題

到此這篇關于Python如何解決secure_filename對中文不支持問題的文章就介紹到這了,更多相關Python secure_filename不支持中文內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 好爽~好硬~好紧~蜜芽 | 国产一级一片 | 国产一级毛片午夜 | 日韩一区二区免费看 | 国产精品国产亚洲精品不卡 | 精品成人一区二区三区免费视频 | 波多野结衣视频免费 | 欧美日韩一区二区三区免费 | 国产精品成人网 | 99在线视频播放 | 国产视频久久久久 | 全国男人的天堂网 | 最新69成人精品毛片 | 99aiav国产精品视频 | 国产成人精品午夜 | 日韩成人毛片高清视频免费看 | 青青自拍 | 中国胖女人一级毛片aaaaa | 久久国产毛片 | 精品91精品91精品国产片 | 亚洲精品99久久久久中文字幕 | 992人人tv香蕉国产精品 | 午夜精品久久久久久99热7777 | 久久毛片免费看一区二区三区 | 久久久久久日本一区99 | 成人国产精品免费视频 | 国产性夜夜春夜夜爽30 | 欧美一级淫片免费播放口 | 日本黄色免费大片 | 色伦网 | 性做爰片免费视频毛片中文i | 日韩三级免费 | 亚洲字幕波多野结衣作品 | 日韩欧美一区二区三区不卡视频 | 免费国产黄网站在线观看视频 | 久久精品国产国产 | 久草免费在线色站 | 国产成人精品免费视频大全办公室 | 亚洲国产大片 | 欧美一级毛片100部 欧美一级毛片aaaaa | 国产v日韩v欧美v精品专区 |