C# 간단한 POST 요청과 동시에 중국어 무분별한 부호화 방지
네트워크 요청에서 인코딩 문제로 인해 요청/발송된 중국어 문자가 난코드로 변할 수 있다. 이러한 상황은 대부분 네트워크의 요청/응답에 대한 인코딩이 제대로 되지 않아 발생한 것이다.여기서, 나는 나 자신이 이런 난장판을 해결한 경험을 이야기할 것이다
중국어 부호화 현상
부호화가 발생하는 현상은 두 가지로 나눌 수 있는데 하나는 발송된 데이터가 부호화되는 것이다. 그 중 하나는 바로 네가 일부 중국어 문자의 문자열을 데이터베이스에 저장하고 싶다는 것이다. 그 결과 저장하자마자 한 무더기가 된다???됐어.다른 하나는 요청한 데이터가 엉망으로 변하는 현상도 많지 않은데 똑같이 한 무더기???
해결 방안도 비교적 간단하다. 일반적으로 특별한 요구가 없으면
UTF-8
의 인코딩 방식을 사용하면 대부분의 상황에 대응할 수 있다.POST 요청이 문자열을 UTF-8
형식으로 변환하는 바이트 흐름임을 보증하고 POST 요청을 받았을 때 바이트 흐름을 UTF-8
형식으로 디코딩하면 됩니다코드 구현
이것은 POST 네트워크 요청을 간단하게 실현하는 방법이다
public static string HttpPost(string url,string postDataStr)
{
string strReturn;
//
byte[] byteData = Encoding.UTF8.GetBytes(postDataStr);
// Http
HttpWebRequest resquest= (HttpWebRequest)WebRequest.Create(url);
resquest.Method = "POST";
resquest.ContentType = "application/x-www-form-urlencoded";
resquest.ContentLength = byteData.Length;
//
using (Stream resquestStream = resquest.GetRequestStream())
{
resquestStream.Write(byteData, 0, byteData.Length);
}
//
using (WebResponse response = req.GetResponse())
{
// :utf-8 + streamreader.readToEnd
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
strReturn = reader.ReadToEnd();
reader.Close();
reader.Dispose();
}
return strReturn;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.