안녕하세요 카카오톡 SDK를 이용하고 있는 개발자입니다.
최근에 회원가입하신분중에 닉네임이 이모티콘으로 하신분들이 계시더라구요…
저희쪽에서 닉네임을 화면에 표시하기위해 서버에 저장하고있는데요…
이런분들은 닉네임을 string 변환시… 어떻게 대처해야할지… 궁금합니다…ㅠ
안녕하세요 카카오톡 SDK를 이용하고 있는 개발자입니다.
최근에 회원가입하신분중에 닉네임이 이모티콘으로 하신분들이 계시더라구요…
저희쪽에서 닉네임을 화면에 표시하기위해 서버에 저장하고있는데요…
이런분들은 닉네임을 string 변환시… 어떻게 대처해야할지… 궁금합니다…ㅠ
자답입니다.
이모티콘의 String 형태가 알수없는 특수문자 형태로 표현이 되더군요.
따라서 특수문자를 제거후 임의의 닉네임으로 대처하여 가입시켰습니다.
//특수문자 제거.
public static String StringReplace(String str){
String match = "[^\uAC00-\uD7A3xfe0-9a-zA-Z\\s]";
str =str.replaceAll(match, " ");
return str;
}
@whahyun2 이상하네요. 그 자체도 string인데 왜 특수문자를 지워야 저장이 될까요? encoding이 이슈이면 이슈일 수 있는데, string자체에 특수문자가 있다고 문제가 되는게 잘 이해가 안되서요~
테스트한 로그를 모두 지워서 보여드릴수가 없는 상황이네요.
단순 텍스트로 로그를 찍어봤을때 깨진 특수문자(◆ ← 이거 안에 글자들이 ?!?@? 형태로 들어간…)로 보이더라구요.
저 값을 데이터베이스에 저장할려고하니 에러가 난 상태입니다.
데이터베이스(mysql) 문자 인코팅 형태가 utf8_general_ci 로 되어있어서 저장이 안되는 상태라
특수문자를 제거한뒤 임의의 값을 넣어서 저장하게 된것입니다. ^^;;