웹 서비스에서 인코딩 된 문자 인 \u201c
등으로 JSON을 얻고 있습니다. 구문 분석에서 완벽하게 작동합니다. 텍스트 내부의 큰 따옴표는 인코딩 된 문자 값을 가지며 제어 따옴표는 인코딩되지 않습니다. 파서는 올바른 JSON 구조를 참조한다. 문제는 파일에 쓰고 읽은 후 JSON을 망친다는 것입니다. 더 이상 \u201c
이 아니지만 내용 텍스트 안에 "
자를 포함하고 있습니다. I는 UTF-8로 인코딩하는 경우인코딩없이 파일에 쓰기
- ,
"
는 파일 분리로 변경 (28
) 문자-
는 파싱 예외 장치 (3) (0x13
) 결과를 제어하도록 변경된다. - ascii로 인코딩하면
"
이?
문자로 변경됩니다. - iso-8859-1로 인코딩하면
"
은 디코드 된"
으로 유지됩니다.
쓰기 및 읽기 후에 인코딩되지 않은 문자를 보존 할 수있는 방법이 있습니까?
예제 :
내가 테스트 프로그램을 작성하는 경우 내가 Newtonsoft.Json.Linq
Encoding encoding = Encoding.GetEncoding("ISO-8859-1");
webResponse = (HttpWebResponse)webRequest.GetResponse();
using (StreamReader streamReader = new StreamReader(webResponse.GetResponseStream(), encoding))
{
responseString = streamReader.ReadToEnd();
}
JToken json = JObject.Parse(responseString);
using (StreamWriter stream = new StreamWriter(path, true, encoding))
{
stream.Write(json.ToString());
}
string spoiledJsonString = File.ReadAllText(path, encoding);
JToken sureNotToBeCreated = JObject.Parse(spoiledJsonString); // EXCEPTION
문제를 시연하는 짧지 만 완전한 프로그램을 보여 주면 정말 도움이 될 것입니다. 진단 방법이 확실하지 않습니다 ... UTF-8을 사용해야합니다. –
글쓰기는 파일 읽기 및 표시가 중요하며 이에 대한 정보가 없습니다. –
다른 정보를 알려주세요. –