소프트웨어/C# & ASP.NET

한글,영어 문자열 길이 알아보기

falconer 2009. 8. 18. 15:37

훈스닷넷(hoons.kr) 에서 Q&A 게시판을 보다가 한글과 영문길이 체크라는 글을보고 괜찮은 팁이라 생각해서 다시정리하게 되었습니다.

 

질문의 내용은...(원문)

윈폼에서 텍스트박스의 입력된 문자열의 길이를 체크하여 메시지를 띄워주는것입니다.

만약 DB에서 컬럼이 VarChar(10) 일경우 영문은 10자, 한글은 5자 밖에 입력이 되어야하는데...

 

따라서 문자열의 길이를 체크하여 메시지를 띄워주면 문제는 해결되지요

하지만 텍스트박스에 입력된 문자열이 영문인지 한글인지 특수문자인지 알 없기때문에

바이트단위로 문자열을 세야 합니다.

 

01.//영문 10자
02.string str_e = "abcdefghij";
03.//한글 5자
04.string str_k = "가나다라마";
05.  
06.int e, k;
07.e = str_e.Length;
08.k = str_k.Length;
09.//글자의 길이 출력
10.Console.WriteLine("E:{0} K:{1}", e, k);
11.  
12.e = Encoding.Default.GetByteCount(str_e);
13.k = Encoding.Default.GetByteCount(str_k);
14.//바이트단위 길이 출력
15.Console.WriteLine("E:{0} K:{1}", e, k);

 

 

 

결과는 위와 같습니다. 단순히 Length 를 쓴다면 우리 눈으로 보는 글자수를 출력해 주게됩니다. 하지만 적용해야될 환경의 단위와 다를때는  Encoding.Default.GetByteCount 요놈을 사용하여 글자수를 맞춰줘야 하겠습니다.


출처 : http://dklee.net/44