단언컨대 웹상에 나와있는 classic asp 에서 한글 자릿수 계산하는 함수들은 대부분 오동작을 일으킨다.
유니코드 코드페이지에서 어설프게 대부분 asc를 여전히 갖다 쓰는가 하면 설령 ascw를 사용하여도 제대로 동작할리가 없다.
아래 함수에서처럼 len(hex(ascw(strCut)))를 사용해야만 정확히 한글의 글자 크기를 반환할 수 있다.
function fnStrLength(str)
Dim strLen, strByte, strCut, strRes, char, i
strLen = 0
strByte = 0
strLen = Len(str)
for i = 1 to strLen
char = ""
strCut = Mid(str, i, 1)
char = len(hex(ascw(strCut)))
'if Len(char) = 1 And char = "1" then
if char = 2 then
strByte = strByte + 1
else
strByte = strByte + 2
end if
next
fnStrLength = strByte
End function
테스트 해보면 '가'는 4자리 이므로 나누기 2를 하여 2를 반환하고 'a'는 2자리 이므로 나누기 1을 하여 1을 반환한다.
중요한 자음 또는 모음 하나만 존재할 때도 'ㅇ'는 4자리 이므로 2를 반환하는 등 정확히 동작한다.
앞단에선 javascript로 체크하고 뒷단에선 classic asp로 이 함수를 이용하여 체크하면 모두 원하는 값을 받아볼 수 있을것이다.
'모바일 & 앱' 카테고리의 다른 글
datepicker를 사용해 날짜 선택시 원하는 작업 진행하기 (0) | 2018.12.28 |
---|---|
jQuery class 버튼의 attribute값을 통해 id선택하기 (0) | 2018.12.28 |
아이폰 배터리 무상 교체 (0) | 2018.12.06 |
iphone simulator folder 찾아가는 법 (0) | 2018.12.04 |
classic asp excel 엔터처리 (0) | 2018.11.12 |