iOS <-> 서버 데이터 검색해서 받기

iOS <-> 서버 데이터 검색해서 받기

QA

iOS <-> 서버 데이터 검색해서 받기

본문

사용하고 있는 서버는 php7.0, mysql 입니다.

ios에서 post로 검색어를 보내서 해당되는 json으로 데이터를 받아오려고 하는데요.

 

1. url request로 받아오는 건 되는데 encoding후 값을 찍어보면 한글이 깨집니다.

2. NSDictionary로 받는것 까지는 되는데 값추출시 공백으로 찍힙니다.

 

3. Alamofire나 Swiftyjson 같은 라이브러리를 사용할 경우 post 값을 서버에 둔 php가 확인하지 못하더군요.

 

서버단 php에서 post값은 아래처럼 받아서 검색키로 사용하고요.

이부분을 어떻게 변형해야 Alamofire나 Swiftyjson에서 post값을 보냈을때 작동할까요?

$postvalue=isset($_POST['postvalue']) ? $_POST['postvalue'] : '';

 

4.데이터 대입은 아래와 같습니다.

          while($row=mysqli_fetch_array($result)){
                array_push($data,
                    array('mb_addr1'=>$row["mb_addr1"],
                    'mb_name'=>$row["mb_name"]

                    ...
                ));
            }

이렇게 대입하면 ios의 json 규격에 맞지 않게 되는 건가요?

 

5. ios에 값을 보낼땐 아래와 같이 보내고 있습니다.

header('Content-Type: application/json; charset=utf8');
$json = json_encode(array("serverdata"=>$data), JSON_UNESCAPED_UNICODE);

echo $json;

여기에 어떤 문제가 있어서 한글이 깨질까요? json-encoding을 하지않고 print_r로 보내면 String(describing:시 한글과 url이 제대로 나옵니다. 이것을 NSDictionary로 받으려 하면 오류가 납니다.

 

이 질문에 댓글 쓰기 :

답변 1

Json 데이터 타입도 만들때 여러방식이 있더라구요

잘은 모르겠지만 저라면 자바스크립트로도 json데이터를 꾸며서 보내보기도 할것같구..

mysqli에서 데이터 불러올때 utf-8로 케릭셋설정해서 불러오기도 해볼것같고 그렇네요..

언제였더라 너무 오래되긴했는데 이게 utf-8로 불러오는걸 선언을 안해주면 한글이 깨져서

나오곤했어요.

 

그리고 어제 php7에서 작업을하는데 세상에.. 인코딩 euc-kr 페이지선언 euc-kr인데도 불구하고

php5.5에서 잘 돌아가던건데도 불구하고!

한글이 엉망진창으로 다 깨져서 나왔엇네요. 현답이 아닐수도 있겠지만

저라면 꼭 php7이 필요한 상황아니라면 버전 다운그레이드 해서도 진행해보시는것도 고려해보겠습니다

 

정확한 답변은 아니겠지만 이건 한글데이터 가공에대한 과정이라 

제가 겪어보고 해결했었던 상황을 다시 떠올려 말씀드립니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,650 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT