hackmin
(민스)
12월 18, 2012, 2:30오전
1
안녕하세요 ~ 처음 인사드립니다 ~
첫 인사인데 질문부터 대뜸하게 됐네요;; 죄송합니다 ~~ ㅠ
지금 titanium을 이용해서 개발을 하고 있는데요, 서버와 통신하여 json 형식으로 data를 받아왔습니다.
그런데영문은 잘 표현이 되는데 한글이 깨져서 표현이 되네요 ..
로그인 후 이름을 가져오는 부분인데요 ..
Ti.App.fireEvent(‘send’,{
name:response.name,
picture:response.pic
});
Ti.App.addEventListener(‘send’,function(e){
alert(e.name);
}
이런 식의 코드에서 한글 이름이 출력되는 것이 아니라 이상하게 깨진 글자가 출력이 됩니다.
원인이 뭔가요 .. 해결 방안 좀 부탁드립니다~~
감사합니다 ~~~ ^^
ByungDae Sohn (12-18 11:37) : 인코딩 문제로 보입니다. 한글을 사용하실때는 반드시 UTF-8로 인코딩해서 전송해야합니다. 서버에서 해주면 간단합니다.
JongEun Lee (12-18 11:58) : 손병대 페북에서 단 댓글을 포럼으로 옮겨가게 하는 부분은 조만간 작업해야겠네요.
hackmin
(민스)
12월 18, 2012, 3:43오전
2
불꽃남자님 천재이시군요 ㅋ
감사합니다 ~ 불꽃남자님 덕분에 해결했습니다 ~ ^^
realrap
(불꽃남자)
12월 18, 2012, 2:44오전
3
페북에 답글을 달았는데,.. 여기에는 안올라오는 군요.. ㅋ 서버에서 응답받은 데이터에 한글이 포함되어 있는 경우 무조건 UTF8로 인코딩을 해서 응답해주시고, 클라이언트(타이타늄)에서는 decodeURIComponent(data)를 이용해 디코딩을 해주시면 간단히 해결됩니다.
서버에서 먼저 해결해줘야하는 문제에요!!
hackmin
(민스)
12월 18, 2012, 2:39오전
4
웃; 이렇게 빠른 답변이;; 안드로이드구요~~
loginReq.onload = function()
{
var json = this.responseText;
var response = JSON.parse(json);
if (response.logged == true)
{
username.blur();
password.blur();
Ti.App.fireEvent(‘send’,{
name:response.name,
picture:response.pic
});
self.close();
}
else
{
alert(response.message);
}
};
http://mobile.tutsplus.com/tutorials/appcelerator/titanium-user-authentication/
위의 사이트의 예제를 그대로 가져와서 했습니다 ~ php 소스도 동일하구요~~
빠른 답변 감사합니다 ~ ^^ㅎ
안드로이드인가요? iOS 인가요? 서버에서 json 받은 형태가 어떻게 되나요? 좀더 자세하게 설명해주세요~^^