responder로 json에 답장할 때 일본어를 유니코드에서 벗어날 수 없음
코드가 깨진 것이 아니라 유니코드 도피는 올바른 표현이다.
주석 표시줄을 확인하십시오.
기사 내용을 수정하려고 하지만 서둘러야 한다.
문장 요약
계속docker를 하려고 하는데 Hello World가 안 돼요. 급하면...,저는responder입니다.
프로야구 선수 이름을 json으로 답장하는 API를 시행하면서 일본어 유니코드가 달아난 포테이토칩을 해제한 것이다.
문서로 구현되었지만 유니코드에서 벗어났습니다.
이루어지다
result[0] = {'name': '淺間 大基'}
resp.media = result[0]
브라우저에 표시
역시 이럴 땐 일본 사람인 것 같아
해소 방법
이루어지다
resp.headers = {"Content-Type": "application/json; charset=utf-8"}
resp.content = json.dumps(result[0], ensure_ascii=False)
브라우저에 표시
나는 상술한 대로 하면 된다고 생각한다. 어때?
학급
요컨대
이루어지다
result[0] = {'name': '淺間 大基'}
resp.media = result[0]
브라우저에 표시
역시 이럴 땐 일본 사람인 것 같아
해소 방법
이루어지다
resp.headers = {"Content-Type": "application/json; charset=utf-8"}
resp.content = json.dumps(result[0], ensure_ascii=False)
브라우저에 표시
나는 상술한 대로 하면 된다고 생각한다. 어때?
학급
요컨대
resp.headers = {"Content-Type": "application/json; charset=utf-8"}
resp.content = json.dumps(result[0], ensure_ascii=False)
Content-Typeのcharset=utf-8
response반의 실복을 보고 방금 보여준 실복이면 될 것 같은데 어떠세요?
class Response:
__slots__ = [
"req",
"status_code",
"text",
"content",
"encoding",
"media",
"headers",
"formats",
"cookies",
"session",
]
def __init__(self, req, *, formats):
self.req = req
self.status_code = None #: The HTTP Status Code to use for the Response.
self.text = None #: A unicode representation of the response body.
self.content = None #: A bytes representation of the response body.
self.encoding = DEFAULT_ENCODING
self.media = (
None
) #: A Python object that will be content-negotiated and sent back to the client. Typically, in JSON formatting.
self.headers = (
{}
) #: A Python dictionary of ``{key: value}``, representing the headers of the response.
self.formats = formats
self.cookies = {} #: The cookies set in the Response, as a dictionary
self.session = (
req.session.copy()
) #: The cookie-based session data, in dict form, to add to the Response.
@property
async def body(self):
if self.content is not None:
return (self.content, {})
if self.text is not None:
return (self.text.encode(self.encoding), {"Encoding": self.encoding})
for format in self.formats:
if self.req.accepts(format):
return (await self.formats[format](self, encode=True)), {}
# Default to JSON anyway.
return (
await self.formats["json"](self, encode=True),
{"Content-Type": "application/json"},
)
async def __call__(self, receive, send):
body, headers = await self.body
if self.headers:
headers.update(self.headers)
response = StarletteResponse(
body, status_code=self.status_code, headers=headers
)
await response(receive, send)
이상.문제가 있으면 지적해 주세요!
Reference
이 문제에 관하여(responder로 json에 답장할 때 일본어를 유니코드에서 벗어날 수 없음), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nassy20/items/adc59c4b7abd202dda26텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)