Node.js를 사용하여 HTTP POST 요청을 할 때 중국어 매개변수를 전달한 후 잘못된 문자가 나타나는 경우가 있습니다. 이 문서에서는 몇 가지 일반적인 솔루션을 공유합니다.
Node.js에서 HTTP POST 요청을 통해 중국어 매개변수를 제출할 때 인코딩이 수행되지 않으면 중국어 매개변수가 UTF-8 인코딩으로 서버에 전송됩니다. 그러나 어떤 경우에는 서버가 UTF-8로 인코딩된 중국어 매개변수를 올바르게 구문 분석할 수 없어 문자가 깨질 수 있습니다. 이러한 상황에는 일반적으로 다음과 같은 이유가 있습니다.
클라이언트에서 전송된 UTF-8 인코딩 중국어 매개변수를 올바르게 구문 분석하기 위해 서버 측 인코딩 형식을 UTF-8로 설정할 수 있습니다. Express 프레임워크에서는 다음 코드를 통해 인코딩 형식을 UTF-8로 설정할 수 있습니다.
const express = require('express') const app = express() app.use(express.urlencoded({ extended: false })) app.use(express.json()) app.use(function(req, res, next) { res.header('Content-Type', 'text/html; charset=utf-8') next() })
요청 헤더의 Content-Type 필드를 다음과 같이 설정할 수 있습니다. Node.js application/x-www-form-urlencoded;charset=utf-8에서 수신된 요청 매개변수가 UTF-8로 인코딩되었음을 서버에 알립니다. HTTP POST 요청을 만들기 위해 axios 라이브러리를 사용할 때 요청 헤더를 다음과 같이 설정할 수 있습니다:
const axios = require('axios') axios.post('/api/posts', { title: '中文标题', content: '中文内容' }, { headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8' } }).then(res => { console.log(res) }).catch(err => { console.log(err) })
기본 인코딩을 UTF-8로 설정하지 않는 일부 Node.js 모듈의 경우, 프로세스를 수동으로 인코딩하고 중국어 매개변수를 UTF-8 인코딩으로 변환할 수 있습니다. 인코딩 처리를 위해 쿼리스트링 모듈을 사용할 때 다음과 같이 사용할 수 있습니다:
const querystring = require('querystring') const https = require('https') const postData = querystring.stringify({ title: '中文标题', content: '中文内容' }) const options = { hostname: 'www.example.com', path: '/api/posts', method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': Buffer.byteLength(postData) } } const req = https.request(options, res => { console.log(`statusCode: ${res.statusCode}`) res.on('data', d => { process.stdout.write(d) }) }) req.on('error', error => { console.error(error) }) req.write(postData) req.end()
Node.js HTTP POST 요청을 할 때 중국어 매개변수가 왜곡되는 것이 일반적입니다. 중국어 매개변수가 올바르게 전달될 수 있도록 서버 측 인코딩 형식, 요청 헤더 및 수동 인코딩 처리를 올바르게 설정해야 합니다. 동시에 일부 Node.js 모듈을 사용할 때 인코딩 형식이 기본적으로 UTF-8로 설정되어 있는지도 주의할 필요가 있습니다.
위 내용은 nodejs 포스트의 잘못된 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!