Python 如何使用Django和Mssql(重音)以正确的编码生成Json响应
我正在使用Python通过pyodbc连接到SQL server 2014数据库。 我捕获这些行以生成一个词汇表,然后使用JsonResponse obj通过http和Django发送信息。当我测试它的时候,我的回答有反斜杠和数字,无论哪里有口音。如何正确编码响应 这是我的密码: 数据库\u odbc.pyPython 如何使用Django和Mssql(重音)以正确的编码生成Json响应,python,sql-server,django,pyodbc,Python,Sql Server,Django,Pyodbc,我正在使用Python通过pyodbc连接到SQL server 2014数据库。 我捕获这些行以生成一个词汇表,然后使用JsonResponse obj通过http和Django发送信息。当我测试它的时候,我的回答有反斜杠和数字,无论哪里有口音。如何正确编码响应 这是我的密码: 数据库\u odbc.py import pyodbc import json def connect(): conn = pyodbc.connect( r'DRIVER={ODBC Driv
import pyodbc
import json
def connect():
conn = pyodbc.connect(
r'DRIVER={ODBC Driver 13 for SQL Server};'
r'SERVER=myserver;'
r'DATABASE=mydatabase;'
r'UID=sa;'
r'PWD=secret')
return conn.cursor()
def get_data_v(cursor):
cursor.execute('select * from data')
columns = [column[0] for column in cursor.description]
results = []
for row in cursor.fetchall():
results.append(dict(zip(columns, row)))
return results
from django.http import JsonResponse
from .database_odbc import connect, get_data_v
def dataView(request):
payload = get_data_v(connect())
response = JsonResponse(payload, safe=False)
response['contentType'] = 'application/json; charset=latin1'
return JsonResponse(payload, safe=False)
视图.py
import pyodbc
import json
def connect():
conn = pyodbc.connect(
r'DRIVER={ODBC Driver 13 for SQL Server};'
r'SERVER=myserver;'
r'DATABASE=mydatabase;'
r'UID=sa;'
r'PWD=secret')
return conn.cursor()
def get_data_v(cursor):
cursor.execute('select * from data')
columns = [column[0] for column in cursor.description]
results = []
for row in cursor.fetchall():
results.append(dict(zip(columns, row)))
return results
from django.http import JsonResponse
from .database_odbc import connect, get_data_v
def dataView(request):
payload = get_data_v(connect())
response = JsonResponse(payload, safe=False)
response['contentType'] = 'application/json; charset=latin1'
return JsonResponse(payload, safe=False)
我尝试过使用和不使用响应['contentType']标题
谢谢。请发布一个“错误”编码的JSON示例。可能是有效的JSON。另外:仅在标头上设置字符集是不够的,这会导致非标准响应。如果您想要
ISO-8859-1
-编码的JSON(为什么?),您还必须设置[{“日期”:“2006-07-13”,“plage”:1,“Production”:151,“config”:79,“Arret”:2,“Pause”:0,“\u00c9teint”:158,“alcul\u00e9”:311,“prod”:22249,“quan”:33959,“Nombre”:0,“Hrs”:0},\u00c9应该是完全有效的JSON,Python的json
模块unicode转义任何非ASCII字符。字符串应该在客户端正确解码。我使用谷歌浏览器读取json响应,这是我需要在谷歌浏览器上更改的配置吗?我正在使用python django在windows环境中工作。因此,在您的终端上是否没有正确地重现重音?旁注:charset=latin1
仍然不正确,默认情况下JSON位于utf-8
中。