2012-11-26 1 views
0

Windows 스토어 응용 프로그램을 작성 중이며 DAL에서 웹 서비스의 XML 데이터를 가져옵니다. 사이트의 API에 의해 노출 된 HTTP GET 요청 및 응답을 사용하고 있습니다. 내가 히브리어에서 문자열 매개 변수를 성공적으로 통과 영어 문자열하지만 문자열을 사용했을 때 Windows 저장 응용 프로그램에서 GET/POST 요청 매개 변수 인코딩 문제가 발생했습니다.

나는 성공적으로

문제가 시작 .. 을 매개 변수가 필요하거나 정수 parametrs를 얻을 수없는 다양한 방법의 데이터를 얻을 수 있었다 하지마.

사이트 API에서 개발 한 테스트 양식을 사용하여 textBox에 "נאפיס"이라고 입력하면 XML을 반환하고 스니퍼로 문자열이 % E3 % E9 % F7 % F1 % E9

동일한 이름의 코드에서 URI를 직접 작성하면 XML 스키마 만 가져오고 그 문자열이 % D7 % 93 % D7 % 99 % D7 % A7 % D7로 인코딩 된 것을 볼 수 있습니다. % A1 % D7 % 99 - UTF-8로 인코딩 된 URL을 의미합니다.

히브리어로 인코딩하고 utf-8로 다시 디코딩하려고했는데 다음과 같은 문자열이 있습니다. ðôéññ 이 도구를 넣으면 : http://coderstoolbox.net/string/ i se 그 URL을 인코딩하면 (ðôéñ) 원하는 % F0 % E0 % F4 % E9 % F1을 얻을 것입니다.

그래서 문자열을 API로 보냈지 만 실제 데이터가없는 XML 스키마 만 다시 반환하는 것으로 나타났습니다.

내가 시도한 또 다른 방법은 히브리어 단어를 다르게 인코딩하는 것입니다. WinRT 이후 내가 리플렉터 다시 가져올했다 "httputility"지원하지 않습니다 .. 당신에게해야 재미 없었다 ..

내가 인코딩 된 "נאפיס"% u05e0 % u05d0와 함께 종료 % u05e4 % u05d9 % u05e1 난과 같이 브라우저에서 사용할 경우 :이 위대한 작품을

http://new.rest.co.il/WebService/RestWS.asmx/SearchRestsByName?Keyword=%u05e0%u05d0%u05e4%u05d9%u05e1

이 실제 XML 데이터를 얻고, 스니퍼에서, 매개 변수가 남아 동일 (% u05e0 % u05d0 % u05e4 % u05d9 % u05e1). 난 내 코드에서 사용할 때

는하지만, 다시 난 단지 스키마를 얻고, 스니퍼, 나는 문자열이로 인코딩 된 것을 볼 수 : % 25u05e0 % 25u05d0 % 25u05e4 % 그것이 의미 25u05d9 % 25u05e1 다시 인코딩 된 URL!

나는

아무도 이것에 대해 생각을 가지고 있는가 .. 내가 대한 모든 조합을 시도 ...이에서 필사적이야? 감사.

답변

0

fson으로 보내기 전에 json_encode와 json_decode를 실행해야합니다.

$album_details = array(
    'message'=> 'Live photos from our app',      
    'name'=> $title, // This can be any non-english characters that can be in unicode 
    'access_token'=>$pageAccessToken 
); 

$jsonStr = json_encode($album_details); // THIS IS KEY IN WHATEVER PLATFORM 
$decoded_album_settings = json_decode($jsonStr, true); // THIS IS KEY IN WHATEVER PLATFORM 

$create_album = $this->facebook->api('/'.$this->facebookPageId.'/albums', 'post', $decoded_album_settings); 

아이디어는 여기에서 찍은 : https://stackoverflow.com/a/3806967/1200166

는 여기에 PHP의 예입니다