Develop!

캐릭터셋에 대한 고민...

체리필터 2018. 3. 21. 18:17
728x90
반응형

회사에서 sms 발송 시 특정 문자가 깨져 나가는 문제가 발생...

sms 발송 시스템은 "세X 텔레X"을 사용 하는데 특정 DB에 값을 넣어 두면 jar로 실행 되는 데몬이 해당 DB 값을 읽어서 발송 하는 방식임.

DB에 값이 들어갈 때까지 UTF-8 형식이고 깨지지 않고 들어가는데, 실제 폰에서 받아 보기만 하면 깨지는 상황.

깨지는 문자는 "–" 임. 일반 키보드에서 치는 "-"와는 다르고, 워드나 한글 등에서 copy & paste 한 것으로 보임.

실제 폰에서 받아 볼 경우 해당 문자는 "?"으로 치환 되어 옴.


해당 현상을 재현 하기 위해 php에서 테스트 해 보았으나 재현 안되고

Java에서는 아래와 같은 방식으로 재현 됨.



콘솔에 찍힌 결과 값은 아래와 같음.

euckrString : 201? 218

utf8String : 201– 218


해당 내용을 기초로 해당 텔레콤의 jar 파일 내부도 비슷하게 구현 되어 있을거라고 추정함.

위 내용을 위해 별도 api에서 검증 하는 방식을 생각해 봤으나 php로 된 앞단과 api 서버인 Java 연결이 귀찮아 고민...

php에서는 위에처럼 되는 부분을 찾기는 힘들고 iconv나 mb_convert_encoding을 이용 해야 만 함.


iconv를 이용할 경우 utf-8 > euc-kr로 변환할 경우 변환할 수 없다는 에러 메시지 나옴.

mb_convert_encoding를 사용할 경우 utf-8 > euc-kr > utf-8 로 변환 하면 해당 문자가 사라짐.

이를 이용해서 원문과 변환된 결과물 사이의 유사도를 similar_text를 이용해서 100%가 아닐 경우 문자를 보내지 못하도록 하면 될 것이라 일단 생각 까지만...


구현은 나중에 ^^;;;

728x90
반응형

'Develop!' 카테고리의 다른 글

Get에 Body 사용하기?  (1) 2021.08.26
기수 변환 (진수)  (0) 2021.05.14