亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python基礎教程:Flask上傳文件(包含中文)保存后亂碼問題解決

發布時間:2020-08-07 02:24:26 來源:ITPUB博客 閱讀:513 作者:千鋒Python唐小強 欄目:編程語言

Flask是支持文件上傳的,  近來做了一個上傳SQL文件的功能, SQL中會使用到中文, 泰文, 馬來西亞文等多種語言, 

我們通過Flask接收到文件, 先把文件保存在后端, 保存后卻發現是亂碼.

from flask import request

from werkzeug.utils import secure_filename

@app.route('/upload', methods=['GET', 'POST'])

def upload_file():

    if request.method == 'POST':

        f = request.files['the_file']

        f.save('/var/www/uploads/' + secure_filename(f.filename))

    ...

通過上面一段代碼接收并保存中文文件會亂碼的.

如何解決呢?

首先考慮亂碼是如何產生的呢, 兩種不同的編碼方式導致的.

通過Python的chardet模塊的detect方法可以獲取到字符串的編碼方式

file = request.files.get('file')

sql_content = file.read()

encoding = chardet.detect(sql_content)['encoding']

我的項目中獲取的編碼方式是GB2312編碼

解決編碼錯亂的問題就是先正確解碼, 再重新編碼, 本項目中是先用GB2312解碼, 然后用UTF-8編碼. 如下:

sql_content = sql_content.decode('GB2312').encode('utf-8')

上面重新編碼后的sql_content的再重新寫入文件對象, 然后保存就解決了中文亂碼的問題.

file.truncate()

file.seek(0)

file.write(sql_content)

file.save('test.sql')

后臺之間保存文件的亂碼問題解決后, 我們通過MINIO的SDK上傳的亂碼問題也迎刃而解.

代碼全覽:

# 文件上傳接口

class DBTaskSQLFile(Resource):

    # 新建文件

    def post(self):

        file = request.files.get('file')

        file.seek(0)

        sql_content = file.read()

        encoding = chardet.detect(sql_content)['encoding']

        sql_content = sql_content.decode(encoding).encode('utf-8')

        file.truncate()

        file.seek(0)

        file.write(sql_content)

        file.seek(0)

        # SQL文件上傳至文件服務器

        try:

            pass

        except Exception as err:

            print('[MINIO]:', err)

            return jsonify(code=1, msg='SQL文件上傳至文件服務器時失敗')

        return jsonify(code=0, msg='Success')

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

项城市| 平潭县| 明光市| 牟定县| 大新县| 莒南县| 新兴县| 海城市| 泸州市| 朔州市| 东莞市| 洪泽县| 华坪县| 梅河口市| 保亭| 乳山市| 老河口市| 岫岩| 台南市| 昌图县| 左权县| 淮北市| 丽水市| 竹山县| 浠水县| 雷州市| 措美县| 秦皇岛市| 昌邑市| 宜兰市| 石渠县| 民县| 河曲县| 伊宁县| 鹰潭市| 龙井市| 彭阳县| 清新县| 磴口县| 枝江市| 石阡县|