안녕하세요.
UTF-8로된 텍스트 문서에 영어, 한글, 일본어 등등이 저장되어 있습니다.
이 중에서 한글만 뽑아내려고 합니다.
EUC의 경우 [\x80-\xFF]{2}로 영어 이외의 언어는 뽑아낼 수 있는데, UTF-8의 경우도 한글 인코딩 규칙만 알면 한글만 제외할 수 잇을 듯 한데요.
UTF-8에서도 이런 것이 가능할까요?
UCS2 로 한번 바꿔 준 다음에 unicode.org에 한글 표준 character 들의 위치를 쭉 파악해서 끄집어내면 되지 않을까 싶은데여.
권위를 의심할 것,어긋남을 존경할 것,자리잡기를 거부할 것,항상 자신을 재창조할 것 - MIT 미디어랩 -
굳이 Unicode가 아니라 UTF-8 이라 하심은...
UTF-8 인코딩 특성을 사용해서 얻어 내고 싶으신건가요?
제가 자세히 찾아보지 않고 답을 달고 있습니다만
아마도 UTF-8 인코딩이 가변 길이 방식을 사용하는 인코딩이니
1바이트로 된 녀석을 아스키 문자로, 2바이트 이상을 한국어로 볼 수 있지 않을까요?
일하는 사람들의 희망 민주노동당 : http://www.kdlp.org 반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
UTF-8도 아스키 이외의 글자들은 인코딩된 문자열의 각 문자값이 0x80 이상이니 똑같이 하시면 영어 이외의 문자는 거르실 수 있습니다. 한글만 뽑으시려면 유니코드 테이블을 참고하시면 되겠지요.
안녕하세요. UTF-8로된 텍스트 문서에 영어, 한글, 일본어 등등이 저장되어 있습니다. 이 중에서 한글만 뽑아내려고 합니다. EUC의 경우 [\x80-\xFF]{2}로 영어 이외의 언어는 뽑아낼 수 있는데, UTF-8의 경우도 한글 인코딩 규칙만 알면 한글만 제외할 수 잇을 듯 한데요. UTF-8에서도 이런 것이 가능할까요?
일본어도 섞여있다니 그냥 멀티바이트인 경우만 추린다고 되지는 않을 듯 하군요 :)
유니코드에서 한글은 u+1100(첫가끝영역), u+ac00(한글완성형영역), u+3130(한글자모영역) 이렇게 세가지 영역에 분포되어 있습니다...
http://www.unicode.org/charts/PDF/UAC00.pdfhttp://www.unicode.org/charts/PDF/U1100.pdfhttp://www.unicode.org/charts/PDF/U3130.pdf
u+3130 영역은 3130~317f 까지를 차지하고 있으니까
# echo -ne \\x31\\x30 | iconv -f ucs-2 -t utf-8 | xxd # echo -ne \\x31\\x7f | iconv -f ucs-2 -t utf-8 | xxd
등을 통해 대강 영역을 구할 수 있습니다... (ac00, 1100 영역에 대해서도 비슷한 작업을 해야겠죠)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~ 나 한줄기 바람처럼..
굳이 Unicode가 아니라 UTF-8 이라 하심은... UTF-8 인코딩 특성을 사용해서 얻어 내고 싶으신건가요? 제가 자세히 찾아보지 않고 답을 달고 있습니다만 아마도 UTF-8 인코딩이 가변 길이 방식을 사용하는 인코딩이니 1바이트로 된 녀석을 아스키 문자로, 2바이트 이상을 한국어로 볼 수 있지 않을까요?
UTF8 <-> UCS2/UCS4 의외로 간단합니다.
아래 문서 참조하셔서 UCS2나 4로 바꾸신뒤에 한글영역 검색하면 됩니다.
http://www.jinsuk.pe.kr/Unicode/Unicode_intro-kr.html#utf8
Written By the Black Knight of Destruction
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
UCS2 로 한번 바꿔 준 다음에unicode.org에 한글 표준 c
UCS2 로 한번 바꿔 준 다음에
unicode.org에 한글 표준 character 들의 위치를 쭉 파악해서
끄집어내면 되지 않을까 싶은데여.
권위를 의심할 것,어긋남을 존경할 것,자리잡기를 거부할 것,항상 자신을 재창조할 것 - MIT 미디어랩 -
굳이 Unicode가 아니라 UTF-8 이라 하심은...UTF-8
굳이 Unicode가 아니라 UTF-8 이라 하심은...
UTF-8 인코딩 특성을 사용해서 얻어 내고 싶으신건가요?
제가 자세히 찾아보지 않고 답을 달고 있습니다만
아마도 UTF-8 인코딩이 가변 길이 방식을 사용하는 인코딩이니
1바이트로 된 녀석을 아스키 문자로, 2바이트 이상을 한국어로 볼 수 있지 않을까요?
일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.
UTF-8도 아스키 이외의 글자들은 인코딩된 문자열의 각 문자값이 0x8
UTF-8도 아스키 이외의 글자들은 인코딩된 문자열의 각 문자값이 0x80 이상이니 똑같이 하시면 영어 이외의 문자는 거르실 수 있습니다.
한글만 뽑으시려면 유니코드 테이블을 참고하시면 되겠지요.
Re: UTF-8로 된 텍스트 문서에서 한글만 검색하기
일본어도 섞여있다니 그냥 멀티바이트인 경우만 추린다고 되지는 않을 듯 하군요 :)
유니코드에서 한글은 u+1100(첫가끝영역), u+ac00(한글완성형영역), u+3130(한글자모영역) 이렇게 세가지 영역에 분포되어 있습니다...
http://www.unicode.org/charts/PDF/UAC00.pdf
http://www.unicode.org/charts/PDF/U1100.pdf
http://www.unicode.org/charts/PDF/U3130.pdf
u+3130 영역은 3130~317f 까지를 차지하고 있으니까
등을 통해 대강 영역을 구할 수 있습니다... (ac00, 1100 영역에 대해서도 비슷한 작업을 해야겠죠)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
[quote="쌀밥"]굳이 Unicode가 아니라 UTF-8 이라 하심은
UTF-8로 한글 음절 영역은 3바이트입니다.
UTF8 <-> UCS2/UCS4 의외로 간단합니다.아
UTF8 <-> UCS2/UCS4 의외로 간단합니다.
아래 문서 참조하셔서 UCS2나 4로 바꾸신뒤에 한글영역 검색하면 됩니다.
http://www.jinsuk.pe.kr/Unicode/Unicode_intro-kr.html#utf8
Written By the Black Knight of Destruction
댓글 달기