UTF-8로 된 텍스트 문서에서 한글만 검색하기

wertyu의 이미지

안녕하세요.

UTF-8로된 텍스트 문서에 영어, 한글, 일본어 등등이 저장되어 있습니다.

이 중에서 한글만 뽑아내려고 합니다.

EUC의 경우 [\x80-\xFF]{2}로 영어 이외의 언어는 뽑아낼 수 있는데, UTF-8의 경우도 한글 인코딩 규칙만 알면 한글만 제외할 수 잇을 듯 한데요.

UTF-8에서도 이런 것이 가능할까요?

spacelee의 이미지

UCS2 로 한번 바꿔 준 다음에
unicode.org에 한글 표준 character 들의 위치를 쭉 파악해서
끄집어내면 되지 않을까 싶은데여.

권위를 의심할 것,어긋남을 존경할 것,자리잡기를 거부할 것,항상 자신을 재창조할 것 - MIT 미디어랩 -

쌀밥의 이미지

굳이 Unicode가 아니라 UTF-8 이라 하심은...

UTF-8 인코딩 특성을 사용해서 얻어 내고 싶으신건가요?

제가 자세히 찾아보지 않고 답을 달고 있습니다만

아마도 UTF-8 인코딩이 가변 길이 방식을 사용하는 인코딩이니

1바이트로 된 녀석을 아스키 문자로, 2바이트 이상을 한국어로 볼 수 있지 않을까요?

일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.

pcpenpal의 이미지

UTF-8도 아스키 이외의 글자들은 인코딩된 문자열의 각 문자값이 0x80 이상이니 똑같이 하시면 영어 이외의 문자는 거르실 수 있습니다.
한글만 뽑으시려면 유니코드 테이블을 참고하시면 되겠지요.

정태영의 이미지

wertyu wrote:
안녕하세요.

UTF-8로된 텍스트 문서에 영어, 한글, 일본어 등등이 저장되어 있습니다.

이 중에서 한글만 뽑아내려고 합니다.

EUC의 경우 [\x80-\xFF]{2}로 영어 이외의 언어는 뽑아낼 수 있는데, UTF-8의 경우도 한글 인코딩 규칙만 알면 한글만 제외할 수 잇을 듯 한데요.

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 까지를 차지하고 있으니까

# 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 ~(~_~)~
나 한줄기 바람처럼..

익명 사용자의 이미지

쌀밥 wrote:
굳이 Unicode가 아니라 UTF-8 이라 하심은...

UTF-8 인코딩 특성을 사용해서 얻어 내고 싶으신건가요?

제가 자세히 찾아보지 않고 답을 달고 있습니다만

아마도 UTF-8 인코딩이 가변 길이 방식을 사용하는 인코딩이니

1바이트로 된 녀석을 아스키 문자로, 2바이트 이상을 한국어로 볼 수 있지 않을까요?


UTF-8로 한글 음절 영역은 3바이트입니다.
Necromancer의 이미지

UTF8 <-> UCS2/UCS4 의외로 간단합니다.

아래 문서 참조하셔서 UCS2나 4로 바꾸신뒤에 한글영역 검색하면 됩니다.

http://www.jinsuk.pe.kr/Unicode/Unicode_intro-kr.html#utf8

Written By the Black Knight of Destruction

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.