Q&A

  • xml 데이타 받기 깨지는 한글 ...아시는분 않계신가요? 저좀 도와 주세요~
요즘 이상한거 하구 있슴다.

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>
1  COMMENTS
  • Profile
    양영필 2008.02.26 10:31
    Space때문에 URL이 잘못 인식하는거 아닌가요?
    공백을 %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;