JavaScript 中的 GET 参数中文乱码问题通常是由于编码和解码不一致导致的。以下是关于这个问题的基础概念、原因、解决方案以及相关应用场景的详细解释。
当浏览器发送 GET 请求时,URL 中的非 ASCII 字符会被自动进行 URL 编码。如果服务器端没有正确解码这些字符,就会导致乱码问题。
确保在发送请求之前,对中文参数进行 URL 编码。
let param = encodeURIComponent('中文');
let url = `http://example.com/api?param=${param}`;
服务器端需要正确解码 URL 中的参数。
const http = require('http');
const url = require('url');
http.createServer((req, res) => {
const queryObject = url.parse(req.url, true).query;
const decodedParam = decodeURIComponent(queryObject.param);
console.log(decodedParam); // 输出: 中文
res.end();
}).listen(3000);
from flask import Flask, request
app = Flask(__name__)
@app.route('/api')
def api():
param = request.args.get('param')
decoded_param = param.encode('latin1').decode('utf-8')
print(decoded_param) # 输出: 中文
return 'Success'
if __name__ == '__main__':
app.run(port=3000)
通过以上方法,可以有效解决 JavaScript GET 参数中文乱码的问题,确保数据的正确传输和处理。
领取专属 10元无门槛券
手把手带您无忧上云