我有一个浏览器,它会将 utf-8 字符发送到我的 Python 服务器,但是当我从查询字符串中检索它时,Python 返回的编码是 ASCII。我该如何将纯字符串转换为 utf-8?
注意:从网络传递的字符串已经是UTF-8编码的,我只是想让Python将其视为UTF-8而不是ASCII。
为了确保 Python 将字符串视为 UTF-8,您通常需要正确解码它,尤其是在处理查询字符串时。您可以按照以下方法进行解码:
如果您使用的是 Flask,该框架通常可以正确处理传入数据。但是,如果您需要手动解码查询参数中的字符串,则可以执行以下操作:
from flask import Flask, request app = Flask(__name__) @app.route('/your_endpoint') def your_function(): # Get the raw query string raw_value = request.args.get('your_param') # Decode it to UTF-8 (if it's not already) utf8_value = raw_value.encode('latin1').decode('utf-8') return utf8_value
如果您没有使用 Web 框架,而是直接处理查询字符串,则可以像这样解码输入:
import urllib.parse # Example raw query string query_string = "your_param=%C3%A9" # Example with UTF-8 encoded character # Parse the query string parsed = urllib.parse.parse_qs(query_string) # Get the parameter (list) raw_value = parsed.get('your_param', [None])[0] # Decode from 'latin1' to 'utf-8' utf8_value = raw_value.encode('latin1').decode('utf-8') print(utf8_value) # This will output the UTF-8 character
latin1
decode
通过使用这些方法,你可以确保你的 Python 服务器正确解释和处理从