2020. 12. 4. 14:32

python 한글2글자, 영문1글자로 글자수 계산

요즘은 세상이 좋아져서 한글도 1글자(byte의 개념이 아님!!), 영어도 1글자로 처리가 되줘서 크게 불편한것 없이 살고는 있지만, 가끔 통신이나 Byte단위로 뭐 해야 할때 한글2글자, 영문 1글자로 글자수 계산해야 하는 경우가 있음

(진지하게 따지면 한글 3byte...뭐 그런 얘기가 나오는게 맞지만 그렇게 까지 계산해야 하는 상황이면 보통 그냥 전문 통신 말고 API같은걸로 만들어달라고 하는게 나을것임 -_-))

 

어디까지나 필요할때 잠깐 써먹기 위해서 여기 저장해 놓음

 

import re

def korlen(str):    
	korP = re.compile('[\u3131-\u3163\uAC00-\uD7A3]+',re.U)    
    temp = re.findall(korP, str)    
    temp_len = 0    
    for item in temp:
    	temp_len = temp_len + len(item)
    return len(str) + temp_len
        
test = "안녕하세요, 이것은 테스트 12345 입니다.ㅋㅋㅋ Hello!!!"  
# 길이 37, 한글 2바이트 기준 54 (한글 17자)
print(korlen(test))