午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python如何解決secure_filename對(duì)中文不支持問題

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

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

一、最近使用secure_filename發(fā)現(xiàn)的問題

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

Python如何解決secure_filename對(duì)中文不支持問題

二、后面找到了原因

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

三、解決方案

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

secure_filename(filename)函數(shù)源代碼: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)函數(shù)修改后的代碼:

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(’._’) # 添加新規(guī)則 # 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對(duì)中文不支持問題

到此這篇關(guān)于Python如何解決secure_filename對(duì)中文不支持問題的文章就介紹到這了,更多相關(guān)Python secure_filename不支持中文內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 韩国精品一区二区 | 国产日韩欧美成人 | 菊花综合网| 亚洲成人自拍偷拍 | 欧美俄罗斯乱妇 | 亚洲日本中文字幕在线 | 91成人在线免费观看 | 亚洲香蕉视频 | 欧美中文字幕在线观看 | 亚洲福利天堂 | 一本色道久久综合亚洲精品图片 | 婷婷九九 | 成年人网站在线观看视频 | 成人aaa| 曰韩av | 国产精品福利一区 | 国产精品视频久久久久 | 日韩一区二区三区免费观看 | 六月丁香综合 | 六月色| 日韩影视一区 | 97久久精品视频 | 国产黄色片在线观看 | 国产av毛片 | 天堂网国产 | 黄色国产精品 | 色婷婷小说 | jizz黄色| 日韩一级免费毛片 | 国产成人精品综合在线观看 | av一本| 日本色综合 | 黄色成人在线 | 一区亚洲 | 成人小视频在线 | 九九热在线免费视频 | 美女黄页在线观看 | 亚洲综合色站 | av在线日韩 | 国产一区二区三区四区在线 | 成人激情社区 |