JSON Ajax 반환 유형에 필요한 이스케이프 문자 목록은 어디서 찾을 수 있습니까?
ASP가 있어요.JSON 개체를 반환하는 NET MVC 액션입니다.
JSON:
{status: "1", message:"", output:"<div class="c1"><div class="c2">User generated text, so can be anything</div></div>"}
현재 제 HTML이 고장나고 있습니다.출력 필드에 사용자 생성 텍스트가 있으므로 이스케이프해야 하는 모든 항목을 이스케이프해야 합니다.
내가 탈출해야 할 모든 것들의 목록을 가지고 있는 사람이 있나요?
JSON 라이브러리는 사용하지 않고 직접 문자열을 만듭니다.
http://json.org/ 를 참조해 주세요.탈옥한 캐릭터들의 목록이 크리스가 제안한 것과 조금 다르다고 주장합니다.
\"
\\
\/
\b
\f
\n
\r
\t
\u four-hex-digits
다음은 JSON용 문자열 리터럴을 작성할 때 이스케이프할 수 있는 특수문자 목록입니다.
\b 백스페이스(ASCII 코드 08)\f 폼 피드(ASCII 코드 0C)\n 새 행\r 캐리지 리턴\t 탭\v 수직 탭\' 아포스트로피 또는 작은따옴표\"큰따옴표\\ 백슬래시 문자
레퍼런스:스트링 리터럴
이 중 일부는 다른 것보다 더 선택적입니다.예를 들어 탭 문자를 이스케이프하든 탭 리터럴을 그대로 두든 문자열은 완전히 유효해야 합니다.단, 백슬래시와 따옴표는 반드시 다루어야 합니다.
공식 ECMA 사양(JSON의 경우 http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf)) 섹션9에서 설명한 바와 같이 다음 문자를 이스케이프해야 합니다.
U+0022
)"
(따옴표)U+005C
)\
solidus 「」, 「」, 「」를 참조해 주세요.U+0000
로로 합니다.U+001F
ASCII 「」)
또한 HTML에 안전하게 JSON을 포함시키려면 다음 문자도 이스케이프해야 합니다.
U+002F
)/
)U+0027
)'
)U+003C
)<
)U+003E
)>
)U+0026
)&
)U+0085
줄하다)U+2028
구분 기호행 구분 기호)U+2029
구분문단 구분)
위의 문자 중 일부는 표준에서 정의된 다음 짧은 이스케이프 시퀀스를 사용하여 이스케이프할 수 있습니다.
\"
는22)u ( U + 0022 )를 나타냅니다.\\
U+005C를 나타냅니다.\/
【솔리더스】(U+002F)를 나타냅니다.\b
(U+0008)을 사용하다\f
U+000C를 나타냅니다.\n
(U+000A)를 나타냅니다.\r
U+000D를 나타냅니다.\t
(U+0009)를 나타냅니다.
이스케이프가 필요한 다른 문자는\uXXXX
표기법, 즉\u
코드 포인트를 부호화하는4 자리수의 16 진수가 이어집니다.
그\uXXXX
는 짧은 이스케이프 시퀀스 대신 사용할 수도 있고 Basic Multilinguage Plane(BMP; 기본 다국어 플레인)에서 임의로 다른 문자를 이스케이프할 수도 있습니다.
HTML 태그의 큰따옴표는 문제가 될 것 같습니다.유효한 JSON이 되기 위해 필요한 것은 이것뿐입니다.교환만 하면 됩니다.
"
와 함께
\"
사용자 입력 텍스트 출력에 대해서는 HttpUtility를 통해 실행해야 합니다.HtmlEncode()는 XSS 공격을 피하고 페이지 포맷을 망치지 않도록 합니다.
사양부터:
이스케이프할 필요가 있는 문자를 제외한 모든 문자는 따옴표 안에 넣을 수 있습니다.따옴표(U+0022), 역솔리더스 [백슬래시](U+005C), 컨트롤 문자 U+0000 ~ U+001F
단지 예를 들면.Bell(U+0007)에는 단일 문자 이스케이프 코드가 없습니다.그렇다고 해서 이스케이프 코드가 필요 없는 것은 아닙니다.Unicode 이스케이프 시퀀스 사용\u0007
.
JSON 참조는 다음과 같습니다.
any-Unicode-예외-또는-또는-제어 문자
다음으로 표준 이스케이프 코드를 나타냅니다.
\"표준 JSON 견적\\ 백슬래시(에스케이프 문자)\/ 슬래시\b 백스페이스(ASCII 코드 08)\f 폼 피드(ASCII 코드 0C)\n 줄바꿈\r 캐리지 리턴\t 가로 탭\u 4소켓
이것으로부터, 리스트 되어 있는 것을 모두 회피할 필요가 있다고 생각하고, 그 외의 것은 모두 옵션이라고 생각했습니다.모든 문자를 다음과 같이 인코딩할 수 있습니다.\uXXXX
원하는 경우 또는 인쇄할 수 없는7비트 ASCII 문자 또는 Unicode 값이 다음 위치에 없는 문자만 수행할 수 있습니다.\u0020 <= x <= \u007E
범위(32 - 126)
이스케이프 코드가 짧아져 가독성과 퍼포먼스가 향상되는 경우는, 우선 표준 문자를 사용해 주세요.
또한 RFC 4627에서 포인트 2.5(스트링)를 읽을 수 있습니다.
JSON 문자열을 삽입한 위치에 따라 다른 문자를 이스케이프(더 이상 이스케이프하지 않을 수도 있습니다)하는 경우가 있습니다만, 이 질문의 대상이 되지 않습니다.
언급URL : https://stackoverflow.com/questions/983451/where-can-i-find-a-list-of-escape-characters-required-for-my-json-ajax-return-ty
'sourcetip' 카테고리의 다른 글
AngularJS 폴더 구조 (0) | 2023.03.09 |
---|---|
Ansible unarchive에서 정적 폴더 수정 시간을 쓸 수 있습니까? (0) | 2023.03.04 |
모듈을 찾을 수 없습니다.Next.js 응용 프로그램에서 'fs'를 확인할 수 없습니다. (0) | 2023.03.04 |
경고: findDOMName은 StrictMode에서 사용되지 않습니다. findDOMName은 StrictMode 내의 Transition 인스턴스를 전달받았습니다. (0) | 2023.03.04 |
JSX에서의 곱슬머리 괄호를 사용한 Const 선언 (0) | 2023.03.04 |