요즘 이상한거 하구 있슴다.
Naver OPEN API 로 작업을 하나 하구 있슴다.
네이버의 서비스를 XML 로 보여주는 작업입니다.
근데.. 그걸 DELPHI 로 하구 있습니다. ㅎㅎㅎ
네이버의 OPEN api 를 위한 조건은 원하는 주소를 작성해서 GET 방식으로 보내기만 하면 됩니다.
단, UTF-8 charset 으로 보내랍니다.
거기까진 좋은데...
Full_String := Search_naver+NaverKey+Xquery+'&target=local&start=1&display=100';
U_String := UTF8Encode(full_String);
WebBrowser1.Navigate(u_string);
이렇게 해서.. 보냈더니... '식당' 하면.. 잘나옵니다. XML 이 아래와 같이 결과값입니다.
근데..'서울 식당' 하면 깨집니다. 한글이요~
제가 한 방법이 잘못된건가요?
아~ 이거 해결할 방법이 없을까요?
DELPHI 7.0 입니다.
관심부탁드립니다.
하나더 부탁드립니다.
아래와 같이 날라온 XML 데이타를 어찌 잘라내야 하나요?
방법좀 알려주심... 백골난망이겠습니다. 아~ 하~
<item>
<title>속초<b>병원</b></title>
<link>http://www.sokchogh.co.kr/</link>
<description>내과, 안과, 소아과 및 정형외과 등 진료.</description>
<telephone>033-639-3000</telephone>
<address>강원도 속초시 교동 977-25</address>
<mapx>450524</mapx>
<mapy>621282</mapy>
</item>
- <item>
<title>통영세계로<b>병원</b></title>
<link>http://www.tysegyero.co.kr</link>
<description>MRI 자기공명 영상촬영장치, CT, 인공신장실 및 고압산소치료실, 종합건강검진센터.</description>
<telephone>055-648-8275</telephone>
<address>경상남도 통영시 정량동 1379-4</address>
<mapx>439548</mapx>
<mapy>249571</mapy>
</item>
공백을 %20로 한번 바꿔서 테스트해보세요.
혹시나 저렇게 바꿔서 제대로 나온다고 하면
인디의 TIdURI.URLEncode(AString); 로 URL을 한번 Encoding해주시거나
아래 함수 써보세요.
출처는 http://www.delphidabbler.com입니다.
function URLEncode(const S: string; const InQueryString: Boolean): string;
var
Idx: Integer; // loops thru characters in string
begin
Result := '';
for Idx := 1 to Length(S) do
begin
case S[Idx] of
'A'..'Z', 'a'..'z', '0'..'9', '-', '_', '.':
Result := Result + S[Idx];
' ':
if InQueryString then
Result := Result + '+'
else
Result := Result + '%20';
else
Result := Result + '%' + SysUtils.IntToHex(Ord(S[Idx]), 2);
end;
end;
end;