어떻게 하는지 가르쳐줄려고 니 글 읽다보니 말도 안되는 글을 적어놔서 씀


일단 유니코드는 문자셋이지 가변적으로 늘어났다가 줄어드는게 아님. 


니가 말하는 2~4바이트 가변형 크기로 왔다갔다하는건 UTF-16이고 이건 유니코드 인코딩 방식중에 하나에 해당되는 거임


UTF-16도 리틀엔디안이냐 빅엔디안이냐 OS따라 갈리는데 니가 그런거 알거같지도 않고


결국은 넌 유니코드가 뭔지 UTF-16이 뭔지 8이 뭔지 구분 못함


그리고 varchar(50)는 50바이트 공간이라는건 언제적 얘기하는건지 모르겟는데 mysql 4.1이후로는 캐릭터셋에 따른 글자길이임.. 참고로 4.1은 2003년에 나왓다.


설사 한글자에 1바이트라고해도 데이터를 글자수대로 넣어야지 숫자만 있으면 500자 들어가고 글자만 있으면 250자들어가는거 만들겠다는 개성 존중하지만 사람많은데가서 그러진 마라



유니코드 문자열 자르는법


1. C에서 다른방식으로 인코딩해서 서브스트링.

CW2A같은것도있고 찾아보면 많으니깐 알아서해라


2. C에서 걍 유니코드상태에서 자른다

icu 잘되잇던데 그냥 갖다쓰면 된다.


http://icu-project.org/apiref/icu4c/classicu_1_1UnicodeString.html


http://stackoverflow.com/questions/7298059/how-to-count-characters-in-a-unicode-string-in-c


3. 디비에서 자른다. 물론 비추천이지만 되니깐 일단..

left, substring.. 오라클에는 substring 유니코드 문자열잘라주는 함수도 있음