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이 필요한 상황아니라면 버전 다운그레이드 해서도 진행해보시는것도 고려해보겠습니다

 

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 39
QA 내용 검색
filter #iOS ×

회원로그인

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