컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Perl/펄] 문자열 길이, 사이즈(글자 수/바이트 수) 구하기; String Length...Python/파이썬] 주석 기호, 주석문 표현, 블록 코멘트; Block Comment R...Excel/엑셀] 문자열 찾기(Find)/바꾸기, 동시에 모두 검색, 문자 한꺼번에 치환(...윈도우 메모장, 줄바꿈 문자(Newline) 종류, 개행문자(CR-LF)란? - Windo...엑셀/Excel] VBA매크로: 알파벳 A-Z 까지 무작위 랜덤 문자 출력; Random ...CMD 확장자 파일 만들기, CMD.EXE로, 파일(File) 만들기/저장(Save)하기VI-VIM-GVIM 편집기] Win32 용 빔 에디터 다운로드/사용법; Download ...울트라에디트/UltraEdit] 파일 삽입/합치기/병합; 파일 끼워 넣기/붙이기 방법; I...VI-VIM-GVIM] 파일 삽입/합치기/병합; 파일 끼워 넣기/붙이기 방법(명령어); I...울트라에디트(UltraEdit) 사용 방법 설명서, 매뉴얼, 팁, Ultraeditor

Perl/펄] 한글 글자 개수, 바이트 수 (UTF-8 유니코드 문자열) 구하기; Unicode Hangul Byte

Thursday, January 04, 2007

문자열 길이 구하는 함수인 length() 로, 한글 문자열의 길이를 구하면, "글자 개수"가 아닌 "바이트 수"가 나옵니다.

한글 글자 개수를 구하려면, 우선 소스 파일을 "UTF-8 유니코드"로 저장한 후,

use utf8;

이라는 프라그마(pragma)를 삽입하면 됩니다. (한글 완성형에서 한글 문자열의 글자수를 구하는 방법은, 제가 여러가지로 시도해 보았는데, 간단한 방법이 없었습니다. 한자와 전각문자까지 다 고려해야 하기에 상당히 어렵더군요. 유니코드로 하니 간단하게 처리되었습니다.)


한글 글자수 구하기 + 유니코드 바이트 수 얻기 예제


(다음 코드는 UTF-8 인코딩으로 저장해야 합니다. 그렇지 않으면 Malformed UTF-8 character (unexpected continuation byte 0x8c, with no preceding start byte) at D:\Z\2.pl line 8. 이런 에러가 납니다.)
#!/usr/bin/perl
use strict; use warnings;

use utf8;


# 글자 수 구하기
my $s = "똠방각하";
print length($s), "\n";
# 출력 결과 (유니코드 글자 수): 4



# 바이트 수 구하기
do {
  use bytes;
  print length($s), "\n";
  # 출력 결과 (문자열의 바이트 수): 12
};


"use utf8" 이라는 것은, 펄 소스 파일 자체의 인코딩이, "UTF-8 유니코드"라는 뜻입니다.

do {... 라는 부분은. 유니코드 인코딩에서, 문자열의 길이를 구할 때, 바이트 수를 구하는 방법입니다. UTF-8 인코딩에서, 한글 1글자는 3바이트이기에 12가 나옵니다.


do 블록의 끝에 반드시 세미콜론(;)이 있어야 합니다. 그렇지 않으면, 그 뒤에 다른 코드가 있을 때 syntax error at ... (Missing semicolon on previous line?)... 이런 에러가 납니다.



▶▶ Perl/펄] 문자열 길이, 사이즈(글자 수/바이트 수) 구하기; String Length, Size

☞ Perl(펄)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top