programing

작은 따옴표를 큰 따옴표로 구분하는 방법

powerit 2023. 4. 3. 21:48
반응형

작은 따옴표를 큰 따옴표로 구분하는 방법

다음으로 다음 설명에 적합한 명령줄의 예를 제시하겠습니다.

curl  http://dumbdomain.com/solr/collection2/update/json -H
'Content-type:application/json' -d ' { "add": { "doc": { "uid":
"79729", "text" : "I''ve got your number"} } }'

이미 \' (탈옥되지 않음), url encoded (이쪽 끝에서 urldecoded되지 않음) 및 " " (quote sereve!)를 시도했지만 성공하지 못했습니다.

를 unicode 부호화 「」(\u0027)로 치환하면, 다음과 같이 동작합니다.

curl http://dumbdomain.com/solr/collection2/update/json -H 'Content-type:application/json' -d ' { "add": { "doc": { "uid": "79729", "text" : "I\u0027ve got your number"} } }'

이상하지만, 알아둘 가치가 있어요!

이러한 경우의 일반적인 회피책은 데이터를 파일에 저장하고 투고하는 것입니다.

$ cat post.json
{ "add": { "doc": { "uid": "79729", "text" : "I've got your number"} } }

그런 다음 호출:

curl -H "Content-type:application/json" --data @post.json http://dumbdomain.com/solr/collection2/update/json

이렇게 하면 json에서 인용문을 피할 필요가 없어집니다.

Windows 를 사용하고 있는 경우(이 문제는 일반적으로 *nix 에서는 발생하지 않습니다), 출력을 에코에서 컬로 파이프로 연결하여 완전히 이스케이프를 방지할 수 있습니다.

echo {"foo": "bar", "xyzzy": "fubar"} | curl -X POST -H "Content-Type: application/json" -d @- localhost:4444/api/foo

명령줄을 통해 JSON을 올바르게 통과시키는 방법을 의미합니까?Windows 를 사용하고 있는 경우는, 스트링을 회피하는 방법에 주의할 필요가 있습니다.데이터 문자열 전체에 큰따옴표를 사용한 다음 JSON의 큰따옴표를 이스케이프하면 작동합니다.예를 들어 다음과 같습니다.

curl http://dumbdomain.com/solr/collection2/update/json -H 'Content-type:application/json' -d "{ \"add\": { \"doc\": { \"uid\": \"79729\", \"text\" : \"I've got your number\"} } }"

언급URL : https://stackoverflow.com/questions/18612248/how-to-escape-single-quotes-into-double-quotes-into-single-quotes

반응형