2017-11-01 6 views
1

요청이 JSON 인 mpgw가 있습니다. 내용을 JSON.stringify (json) 으로 컨텍스트 변수에 저장합니다. 문제는 json에 emoiji가 포함되어있을 때 문제가 발생합니다. 예를 들어 \ uD83D \ uDE0D 변수가 더 이상 문자열이 아니며 바이너리이고 emoijis가 점으로 표시됩니다 . 나중에 hmac을 계산할 때 변수의 내용을 사용해야하므로 원본 json과 정확하게 일치해야합니다.Emoijis in JSON, Datapower

이 문제를 해결할 수있는 방법이 있습니까? 도움을 주시면 감사하겠습니다.

우리는 펌웨어를 실행 중입니다 IDG.7.5.2.9 나는 그것을 엉망으로 캐릭터 라인 화()이라고 결론을 내릴 수 귀하의 코멘트에서

/

+0

문자열을 컨텍스트 변수에 저장하는 방법을 자세히 설명해 주시겠습니까? 어쩌면 코드 또는 액션이 ​​사용 되었습니까? – Anders

+0

나는 입력을 session.input.readAsJSON (function (error, json))과 함께 읽은 다음 ctx.setVar ('json', JSON.stringify (json)); – JockeD

답변

0

좋아 Jocke D,. 이 탈출을위한 요리 책에 따라입니다 ... 유니 코드가 잘 처리 할

보십시오 (캐릭터 라인 화에 대한 자신의 기능을 추가) (이 설명하는 RFC가) : 같은

function JSON_stringify(s, emit_unicode) { 
    var json = JSON.stringify(s); 
    return emit_unicode ? json : json.replace(/[\u007f-\uffff]/g, 
     function(c) { 
     return '\\u'+('0000'+c.charCodeAt(0).toString(16)).slice(-4); 
     } 
    ); 
} 

ctx.setVar('json', JSON_stringify(json, false)); 

뭔가 ..