Node.js는 웹 개발에 널리 사용되는 인기 있는 서버 측 JavaScript 엔진입니다. 그러나 POST 요청을 처리할 때 중국어 문자가 깨져서 나타나는 경우가 많아 일련의 문제가 발생할 수 있습니다.
문제의 원인은 HTTP 프로토콜에서 POST 요청의 데이터 엔터티 부분이 Content-Type 헤더에 지정된 인코딩 방법을 통해 인코딩되기 때문입니다. 요청을 보내는 클라이언트와 요청을 받는 서버가 서로 다른 인코딩 방법을 사용하면 중국어 문자가 깨질 수 있습니다.
그래서 이 문제를 해결하는 열쇠는 데이터를 요청할 때와 데이터를 받을 때 동일한 인코딩이 사용되는지 확인하는 것입니다. 다음은 몇 가지 해결 방법입니다.
POST 요청을 보낼 때 Content-Type 헤더를 설정하여 요청 데이터의 인코딩 방법을 지정할 수 있습니다. 요청에 중국어 문자가 포함된 경우 Content-Type 헤더를 application/x-www-form-urlencoded;charset=utf-8로 설정할 수 있습니다. 즉, UTF-8 인코딩을 사용하여 인코딩할 수 있습니다.
const data = new URLSearchParams(); data.append('username', '张三'); data.append('password', '123456'); fetch('/login', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8' }, body: data });
POST 요청을 받을 때 Content-Type 헤더를 설정하여 응답 데이터의 인코딩 방법을 지정할 수 있습니다. 마찬가지로 응답에 중국어 문자가 포함된 경우 Content-Type 헤더를 text/html;charset=utf-8로 설정할 수 있습니다. 즉, UTF-8 인코딩을 사용하여 인코딩할 수 있습니다.
app.post('/login', (req, res) => { res.setHeader('Content-Type', 'text/html;charset=utf-8'); res.send('<p>登录成功</p>'); });
미들웨어를 사용하여 POST 요청 인코딩을 처리할 수 있습니다. body-parser 미들웨어는 요청 데이터의 인코딩을 자동으로 처리하여 요청에서 데이터를 주고받을 때 동일한 인코딩이 사용되도록 보장하는 일반적인 솔루션입니다.
const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.post('/login', (req, res) => { const { username, password } = req.body; console.log(username, password); res.send('<p>登录成功</p>'); });
이 예에서는 body-parser 미들웨어가 애플리케이션에 추가되었습니다. , 이를 사용하여 POST 요청의 인코딩을 처리합니다.
일반적으로 POST 요청의 중국어 왜곡 문제를 처리하려면 요청과 응답의 인코딩이 일치하는지 확인하고 미들웨어를 올바르게 사용하여 인코딩 문제를 처리해야 합니다. 이러한 솔루션을 사용하면 POST 요청을 처리할 때 응용 프로그램에 중국어 왜곡 문제가 발생하지 않도록 하여 사용자와 서버 간의 통신을 더 잘 처리할 수 있습니다.
위 내용은 nodejs 게시 중국어 잘못된 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!