亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

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

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

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

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

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

二、后面找到了原因

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

三、解決方案

找到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對中文不支持問題

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 黄在线观看免费 | 久久精品国产久精国产80cm | 国产欧美日韩视频在线观看 | 免费观看的黄色网址 | 日韩a毛片 | 91短视频版高清在线观看免费 | 中国三级黄色 | 美国毛片亚洲社区在线观看 | 欧美jizz8性欧美18 | 亚洲一级毛片中文字幕 | aaaa级毛片欧美的 | 欧美国产综合视频在线观看 | 91制片厂制作果冻传媒麻豆 | 国产亚洲精品网站 | fc2成人免费人成在线观看播放 | 亚洲成人中文 | 尤物免费在线观看 | 九九99热久久精品在线6手机 | 亚洲色图综合网 | 亚洲视频欧美视频 | 看亚洲a级一级毛片 | 午夜激情影院 | 黑人激情视频 | 美女拍拍拍免费视频观看 | 亚洲在线综合 | 亚洲在线第一页 | 欧美日韩国产人成在线观看 | 黄色大片在线免费观看 | 国产精品日韩精品 | 国产一级鲁丝片 | 麻豆短视频传媒网站怎么找 | 一级日韩 | 国产在线视频色综合 | 国产日韩欧美视频 | 男女自偷自拍视频免费观看篇 | a级欧美片免费观看 | 欧美一级视频在线观看欧美 | 日韩国产片 | 免费国产草莓视频在线观看黄 | 亚洲qingse中文字幕久久 | heyzo北条麻妃在线播放 |