문자열 이스케이프와 언이스케이프
JSON·JavaScript 문자열, SQL 문자열, CSV 필드, 정규식 또는 셸 단어에 맞게 텍스트를 이스케이프하거나 이스케이프를 되돌립니다.
코드 예제
내 프로젝트에 그대로 복사해서 쓰세요. 모든 예제는 해당 언어의 표준 라이브러리만 사용하므로 설치할 것이 없습니다.
const text = 'He said "hi"'
console.log(JSON.stringify(text).slice(1, -1))기능
텍스트를 JSON·JavaScript 문자열, SQL 문자열, CSV 필드, 정규식 또는 셸 단어 안에 넣을 수 있도록 이스케이프하고, 이스케이프를 되돌립니다. 각 형식은 필요한 문자만 정확히 이스케이프합니다.
사용 방법
- 텍스트를 입력하거나 붙여넣거나 텍스트 파일을 놓으세요.
- 텍스트가 갈 곳(JSON 문자열, JavaScript 문자열, SQL 문자열, CSV 필드, 정규식, 셸 단어)과 이스케이프할지 언이스케이프할지 고르세요.
- 결과를 복사하거나 다운로드하거나 출력을 입력으로 사용로 다음 입력으로 만드세요.
예시
He said "it's fine"와 줄바꿈 이스케이프:
JSON은 He said \"it's fine\"\n, SQL은 He said "it''s fine", 셸은 'He said "it'\''s fine"'를 줍니다.
알아두기
- JSON과 JavaScript는 백슬래시, 문자열을 감싸는 따옴표, 줄바꿈, 제어 문자를 이스케이프합니다. 언이스케이프는
\n,\t,\uXXXX등을 읽고, JavaScript는\xHH와\u{…}도 읽습니다. - SQL은 작은따옴표를 두 번 씁니다. 손으로 쓴 리터럴에는 맞지만 코드에서는 바인딩 매개변수를 쓰세요.
- CSV 필드는 쉼표, 따옴표, 줄바꿈이 있을 때만 따옴표로 감싸고 안의 따옴표는 두 번 씁니다.
- 셸 단어는 작은따옴표로 감싸고 안의 작은따옴표는
'\''로 써서 아무것도 확장되지 않게 합니다.
형식마다 이스케이프가 다른 이유는?
구문마다 특수 문자가 다릅니다. JSON 문자열은 따옴표, 백슬래시, 제어 문자를 이스케이프해야 합니다. SQL 문자열은 작은따옴표를 두 번 쓰기만 하면 됩니다. CSV 필드는 쉼표, 따옴표, 줄바꿈이 있으면 따옴표로 감쌉니다. 정규식은 연산자를 이스케이프하고, 셸 단어는 아무것도 확장되지 않도록 작은따옴표로 감쌉니다.
자주 묻는 질문
이스케이프만으로 SQL 인젝션을 막을 수 있나요?
아니요. 따옴표를 두 번 쓰는 것은 이 도구가 보여 주는 방식이며 손으로 쓴 쿼리의 리터럴에는 맞지만 코드의 방어책은 아닙니다. 값은 바인딩 매개변수로 전달해 SQL 텍스트의 일부가 되지 않게 하세요.
JSON 문자열과 JavaScript 문자열은 어떻게 다른가요?
JSON은 몇 가지 이스케이프만 허용하고 항상 큰따옴표를 씁니다. JavaScript는 작은따옴표, \x41과 양쪽 따옴표 스타일의 이스케이프도 허용합니다. 따라서 JSON으로 언이스케이프하면 JavaScript가 받아들일 시퀀스를 거부합니다.
이 도구가 내 텍스트를 어딘가로 보내나요?
아니요. 모든 작업은 브라우저에서 이루어집니다. 입력한 내용은 저희 서버로 전송되지 않습니다.