[기타]유니코드(utf-8) 한글 조사 처리
90년대 만들어진 머드들의 경우 한글 인코딩을 거의 대부분 EUC-KR을 썼으나
유니코드를 지원하는 머드에 맞게 짜여진 조사처리는 없어서 제가 쓴 방법을 공유합니다.
사용한 언어가 python이나 로직을 참고하는데는 어려움은 없으실 것이라 생각됩니다.
한글 단어의 마지막 글자가 받침이 있는 것과 없는 것의 차이를 확인하면 되는데,
utf-8형식의 바이트 코드를 문자열로 변환한후(python 3.x버전대는 변환 필요없음) 아스키 코드(ord)로 변환시킨 후 문자열의 마지막 글자([-1])의 값이
아스키 코드값을 28로 나눈 나머지가 16인지 아닌지 여부를 확인하면 됩니다.
나머지가 16이면 받침이 없는 것이고, 나머지는 받침이 있는 문자들 입니다.
(한글 아스키코드 표 링크: http://www.hipenpal.com/tool/characters-to-unicode-charts-in-korean.php)
import sys class _Josa: @classmethod def base(cls, word): if not word: return if sys.version[0] == '2': # python2 일 때 if 44032 <= ord(word.decode('utf-8')[-1]) <= 55203: if ord(word.decode('utf-8')[-1]) % 28 != 16: return True return False else: # python3 if 44032 <= ord(word[-1]) <= 55203: if ord(word[-1]) % 28 != 16: return True return False if word[-1] in ['2', '4', '5', '9']: return False if word[-2:] in ['ng']: return False if word[-1] in ['a', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']: return False return True @classmethod def eunNeun(cls, word): if cls.base(word): return '은' return '는' @classmethod def iGa(cls, word): if cls.base(word): return '이' return '가' @classmethod def eulReul(cls, word): if cls.base(word): return '을' return '를' @classmethod def euroRo(cls, word): if sys.version[0] == '2': if 44032 <= ord(word.decode('utf-8')[-1]) <= 55203: if ord(word.decode('utf-8')[-1]) % 28 != 16 and ord(word.decode('utf-8')[-1]) % 28 != 24: return '으로' return '로' else: if 44032 <= ord(word[-1]) <= 55203: if ord(word[-1]) % 28 != 16 and ord(word[-1]) % 28 != 24: return '으로' return '로' if word[-1] in ['1', '2', '4', '5', '7', '8', '9']: return '로' if word[-1] in ['a', 'c', 'd', 'e', 'f', 'h', 'i', 'j', 'k', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']: return '로' return '으로' @classmethod def kwaWa(cls, word): if cls.base(word): return '과' return '와' @classmethod def iRanRan(cls, word): if cls.base(word): return '이란' return '란'
0Comments
-표시할 내용이 없습니다.-
코멘트를 삭제할 비밀번호를 입력하세요.
정회원 이상만 코멘트 쓰기가 가능합니다.
총 게시물 109개 / 검색된 게시물: 109개
글번호 | 제목 | 작성자 | 조회수 | 좋아요 | 싫어요 | 작성일 | |
---|---|---|---|---|---|---|---|
[기타]누구든지 머드 강의를 올리수 있는 곳입니다...^^ | 머드클럽 | 4567 | 0 | 0 | 2003-12-31 | ||
109 | [hanlp] HanLP 쥬라기공원3를 윈도우에서 돌려봅시다 | 가짜으르릉 | 435 | 1 | 0 | 2025-01-23 | |
108 | [기타] UTF-8 한글 조사처리 (파이썬, c) | 암로 | 166 | 0 | 0 | 2025-01-01 | |
107 | [circle] EUC-KR 및 UTF8 한글 처리 | 울보천사 | 402 | 0 | 0 | 2024-01-08 | |
106 | [기타] 유니코드(utf-8) 한글 조사 처리 | 암로 | 1315 | 0 | 0 | 2020-08-01 | |
105 | [hanlp] 지도소스 수정 [1] | 오코 | 1472 | 1 | 0 | 2018-06-07 | |
104 | [기타] 머드 계보 [1] | 암로 | 10552 | 0 | 0 | 2012-04-28 | |
103 | [mordor] 의형제 | LostMemory | 5384 | 0 | 0 | 2007-10-19 | |
102 | [mordor] 폭탄소스 | LostMemory | 5635 | 0 | 0 | 2007-10-19 | |
101 | [mordor] 패거리 등급 변경 | LostMemory | 6371 | 0 | 0 | 2007-10-19 | |
100 | [mordor] 날짜관리 | LostMemory | 4611 | 0 | 0 | 2007-10-19 | |
99 | [mordor] 마법 추가하기 | LostMemory | 5407 | 0 | 0 | 2007-10-19 | |
98 | [hanlp] 레벨 최대화 32767 | LostMemory | 5508 | 0 | 0 | 2007-10-19 | |
97 | [mordor] 분신이란 기술 | LostMemory | 4871 | 0 | 0 | 2007-10-19 | |
96 | [mordor] 연타 | LostMemory | 4509 | 0 | 0 | 2007-10-19 | |
95 | [mordor] 이자소스 | LostMemory | 5359 | 0 | 0 | 2007-10-19 | |
94 | [mordor] 편지를 아이템화 | LostMemory | 3724 | 0 | 0 | 2007-10-19 | |
93 | [mordor] 직업추가 | LostMemory | 3311 | 0 | 0 | 2007-10-19 | |
92 | [mordor] 패거리 상점 만들기 | LostMemory | 3302 | 0 | 0 | 2007-10-19 | |
91 | [기타] 단땅..프로그램은 멀로 하는거죰.. 첨이라..^^ [1] | 사마천 | 3839 | 0 | 0 | 2006-06-22 | |
90 | [circle] 오래된거지만.. 써클머드 화일들에 대한 간략한 설명.. [2] | 머큐리 | 4350 | 0 | 0 | 2006-06-10 |