게시판 본문 ASP, ASP.NET, IIS & Script - Read Only

re: 정말 여기 밖에는 물어 볼 곳이 없어 보이네요
작성자: 송원석
작성일시: 2004-02-28 19:33,  조회수: 3,486
안녕하세요? 송원석입니다. ^_^

요즘 아기 때문에 정신이 없어서 오후 내내 인터넷에 접근을 하지 못했었네요. 말씀하신 내용은 가능은 하겠습니다만, 그리 쉬울 것 같지는 않군요. 왜냐하면 한글만 따로 골라내시겠다는 뜻이신데 한글 코드 페이지 949 상에서 한글 코드가 특정 영역에 일률적으로 존재하는 것이 아니고 뜨문뜨문 존재하기 때문입니다.

따라서 입력한 문자가 한글인지 아닌지를 판단하려면 코드 페이지 상에서 어떤 한 곳의 영.역.만을 검사하면 되는 것이 아니고 복수의 영.역.들.을 검사해야만 합니다. 아무튼 일단 간단하게 개념을 먼저 말씀드리도록 하겠습니다. ^_^

구현하기 원하시는 것은 한글이 입력되는 경우 경고를 띄우고 싶으시다는 뜻으로 이해하고 있습니다. 물론 영문, 기호, 한자 등은 잘 입력이 되어야 하겠지요. 먼저 한글 코드 페이지가 어떤 방식으로 이루어지는지를 이해하셔야만 합니다. 일단 다음의 문서를 클릭해서 열어보시기 바랍니다.

http://www.microsoft.com/globaldev/reference/dbcs/949.htm

이것이 한글 코드 페이지입니다. 0x7F 까지는 기본적인 아스키 문자입니다. 그리고 한글과 일본어, 한자는 나머지 0x81 부터 0xFE 까지의 코드가 두 개씩 조합되어 구성됩니다. 이에 대해서는 다음의 글에 제가 정리해 놓은 것이 있습니다. 참고하시기 바랍니다.

http://www.egocube.pe.kr/Lecture/Content/component/200203150008
http://www.egocube.pe.kr/Lecture/Content/component/200203150009

아무튼 위의 코드 페이지를 한번 살펴보도록 하겠습니다.

일단 입력된 문자의 아스키 코드가 0x7F 이하라면 영문이나 기타 기본적인 기호들이므로 OK 인 셈입니다. 이 값은 Asc() 함수로 쉽게 알아낼 수가 있구요. 그런데 이때 리턴되는 값은 10 진수이므로 비교에 주의하시기 바랍니다. ^_^

그리고 한자를 골라내는 것은 간단합니다. 아무래도 일본어에서는 한자가 많이 쓰이므로 중요한 문제죠. 일단 0xCA 계열부터 0xFD 계열까지는 모두 한자입니다. 해당 항목을 클릭해보십시요. 따라서 0xCA 계열의 가장 첫 글자인 0x4F3D 문자부터 0xFD 계열의 가장 마지막 글자인 0x8A70 까지는 모두 한자이므로 입력해도 문제가 없는 것이죠. 역시 Asc() 함수로 값을 얻을 수가 있는데 아마 음수값이 나올겁니다. 이는 Int 형보다 값이 커서 그런 것이므로 Long 형으로 바꾸시거나 그냥 그려러니 하십시요. 오류는 아니니까요. ^_^;;;

이번엔 진짜 일본어를 찾아보겠습니다. 히라가나와 카타카나라고 하나요? 아무튼 이 문자들은 0xAA 계열과 0xAB 계열에 있습니다. 해당 항목을 표에서 클릭해보시기 바랍니다. 역시 여기의 코드값들을 비교하여 한글과 일본어를 구분하는 것이 가능합니다.

그런데 문제는 다른 코드 계열들을 클릭해서 눌러보시면 아시겠지만 어떤 코드 계열에서는 반은 한글이, 반은 기호 문자들이 섞여 있다는 것입니다. 따라서 여러가지 기호들은 모두 입력이 가능하고 오직 한글만 입력이 안되게 하시려면 해당되는 모든 영역들을 검사해야만 하는 것입니다. 그게 귀찮아서 0x81 계열부터 0xC8 계열까지 일본어 코드 부분만 빼고 왕창 막아버리신다면 그 코드들 사이에 존재하는 모든 기호들 역시 막히게되는 것이죠. 따라서 한글만을 정확하게 감지해내시려면 조각조각 나누어진 코드 영역들을 모두 검사하셔야만 합니다. ^_^;;;

차라리 '이', '가', '는', '은' 과 같이 한글을 작성할 때 결코 빼먹을 수 없는 문자를 20 ~ 30 여개 내외를 선정하셔서 그것을 막으시는 것이 더 효율적이지 않을까 싶기도 합니다만 좀더 확실한 방법을 원하신다면 위의 방법을 사용하셔야만 합니다.

감사합니다.

IP 주소: 211.222.23.222
전체 2,095 건의 게시물, 84 페이지로 구성된 ASP, ASP.NET, IIS & Script 게시판의 74 페이지입니다.
게시물
286

re: 네이버의 검색결과를 가져와서 정규화 시킬려는데.

송원석

2004-03-15 5,481
285

파일큐브에서요.

궁금이

2004-03-09 1,022
284

re: 파일큐브에서요.

송원석

2004-03-10 3,208
283

fso이용해서 파일 글쓰기중..

김석

2004-03-08 1,005
282

re: fso이용해서 파일 글쓰기중.. [1]

송원석

2004-03-08 3,036
281

re: fso이용해서 파일 글쓰기중.. [1]

송원석

2004-03-08 2,919
280

정규표현식에서 궁금한게 있어서 알려주세요 ㅠ.ㅠ

강지윤

2004-03-06 3,243
279

re: 정규표현식에서 궁금한게 있어서 알려주세요 ㅠ.ㅠ

송원석

2004-03-06 3,043
278

[질문] Pre, Next 글 처리 방법? [1]

큰머리

2004-03-05 3,095
277

re: [질문] Pre, Next 글 처리 방법? [3]

송원석

2004-03-05 3,390
276

정규식 자료 잘봤습니다.

김문수

2004-03-04 951
275

re: 정규식 자료 잘봤습니다.

송원석

2004-03-04 3,054
274

이런 질문 드려도 되는지..

궁금이

2004-03-03 1,049
273

re: 이런 질문 드려도 되는지..

송원석

2004-03-03 3,008
272

(냉무) 답변 진신으로 감사 드립니다.

궁금이

2004-03-04 815
271

제 짧은 생각으로는... 이방법이~ 어떨지??

큰머리

2004-03-04 3,096
270

re: 제 짧은 생각으로는... 이방법이~ 어떨지?? [1]

송원석

2004-03-04 3,121
269

정말 여기 밖에는 물어 볼 곳이 없어 보이네요

궁금이

2004-02-28 1,111

re: 정말 여기 밖에는 물어 볼 곳이 없어 보이네요

송원석

2004-02-28 3,486
267

진심으로 머리 숙여 감사 드립니다.

궁금이

2004-03-02 904
266

re: 진심으로 머리 숙여 감사 드립니다.

송원석

2004-03-02 3,060
265

로또 비슷한 게임을 만들어야 하는데....

최경우

2004-02-27 992
264

re: 로또 비슷한 게임을 만들어야 하는데....

송원석

2004-02-27 3,035
263

re: 로또 비슷한 게임을 만들어야 하는데....

최경우

2004-02-27 961
262

re: 로또 비슷한 게임을 만들어야 하는데.... [2]

송원석

2004-02-27 3,046