문자코드ppt.

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
1/29 키보드로 직접 입력할 수 없는 다양한 기호와 한자를 입력하는 방법을 알아 보자. 또한 블록으로 영역을 설정하는 여러 가지 방법에 대해 살펴본 후 블록 으로 설정된 내용을 복사하여 붙여넣거나, 잘라내고 이동하는 방법에 대해서 도 알아보자. 02_ 문서의 입력과 편집.
Chapter 04 컴퓨터에서 데이터 표현. 04 컴퓨터에서 데이터 표현 2 인코딩 (encoding) – 현실세계의 정보를 컴퓨터 내부에서 처리할 수 있는 이진수로 변환하는 방법 1. 컴퓨터 속에서 데이터 표현 원리 0 - 아빠 1 - 엄마 00 - 아빠 01 - 엄마.
자료의 표현 1. 문자 자료의 표현 2. 멀티미디어 자료의 표현. 컴퓨터일반자료의 표현 학습 목표 ◆ 컴퓨터에서 사용하는 문자 데이터의 표현 방법을 이해할 수 있다. ◆ 컴퓨터에서 사용하는 멀티미디어 데 이터의 표현 방법을 설명할 수 있다.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
문자코드 1 박 2 일 (4 조 ) 이경도 이준집 이수연 엄태규. 문자코드란 ? 문자나 기호를 컴퓨터로 다루기 위하여, 문자나 기호 하나하나에 할당 시키는 고유의 숫자를 말하는 것이다.
2016 유성환 Hybrid MOBILE.
컴퓨터와 인터넷.
조원 : 김영재(코딩) 이지영(스토리) 임병욱(그래픽)
재료수치해석 HW # 박재혁.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
연결리스트(linked list).
제 9 장 구조체와 공용체.
웹 서버 동작 HTTP 클라이언트가 서버와 대화하는 방법과 데이터를 서버에서 클라이언트로 전송 하는 방법을 정의한 프로토콜
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
6장. printf와 scanf 함수에 대한 고찰
jConnect에서 한글 처리문제 및 해결방안
11장. 1차원 배열.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
JA A V W. 03.
프로그래밍 개요
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
☆ASCII☆ 김연주.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
USN(Ubiquitous Sensor Network)
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
FileMaker를 이용한 데이터 관리 옥현진(KICE).
2장. 변수와 타입.
6강. 객체지향 프로그램의 시작 객체지향 이전의 프로그래밍 객체지향의 등장 배경과 이해 메소드의 이해
1. 2진 시스템.
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
CHAPTER 02. 정보의 표현 정보 체계_컴퓨터 내부의 정보 표현과 정보 처리
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
문자코드조사 -8조스토어 ●정성모 ●김대의 ●장인혁.
문자코드 조사 정리 불우이웃 조.
약식 진리표를 이용한 타당성 증명 진리표 그리기 방법의 한계
제 15 강 문자와 코드 shcho.pe.kr.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
리더 : 이동주 스토리 : 김현 그래픽 : 최혁진 코딩 : 최재근
Chapter 10 데이터 검색1.
함수, 모듈.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
9 브라우저 객체 모델.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
제 4 장 Record.
어서와 C언어는 처음이지 제21장.
 6장. SQL 쿼리.
윈도우에서의 유니코드.
7 생성자 함수.
6 객체.
20 XMLHttpRequest.
Presentation transcript:

문자코드ppt

유창희 조사

코드(Code)란 어떤 대상을 간략하게 표시하기 위한 일종의 약속이다 문자 코드도 많고 많은 코드 중의 하나이다. 문자 코드란 문자를 숫자에 대응시켜 나타내는 일종의 대응표이다. 컴퓨터는 숫자만, 그것도 이진수만 다룰 수 있는 존재이고 무나를 직접 다룰 수 없기 대문에 문자를 표현하기 위해서는 개별 문자를 고유의 숫자값에 대응시켜야만 한다. 문자 코드란 문자와 숫자의 대응 관계를 정의한 체계이며 대응시키는 방법에 따라 여러 가지 종류가 있다. 가장 흔하고 오래된 문자 코드는 7비트 크기로 영문자와 숫자, 기호들을 대응시킨 아스키(ASCII) 코드이며 지금도 많이 사용될 뿐만 아니라 이후 확장된 문자 코드들도 아스키를 기반으로 한다. 윈도우즈의 유저, GDI 모듈이 사용하는 ANSI 문자셋과 FAT 파일 시스템이 사용하는 OEM 문자셋도 아스키 문자셋에 기반하되 0x80이후의 문자가 약간 다르게 정의되어 있다. 아스키 문자셋이나 ANSI문자 셋처럼 한 바이트로 한 문자를 표현하는 문자 코드를 SBCS(Single Byte Character Set)라고 한다. 바이트 단위이기 때문에 최대256개의 문자를 표현할 수 있다.

그러나 이 코드는 애초에 미국의 문자에만 맞게 작성되었기 때문에 독일어나 불어 등의 특별한 기호를 가진 문자를 표현하기에 부족했으며 더구나 알파벳과 모양이 완전히 다른 그리스나 러시아의 문자는 전혀 표현할 수가 없었다. 그래서 아스키 코드를 확장한 확장 아스키 코드를 정의하고 같은 코드에 이중으로 문자를 할당할 수 있는 방식인 코드 페이지로 새로운 문자들을 표현하고자 노력했으나 근본적인 해결방법이 되지 못했다. 왜냐하면 특정 코드 페이지에서 작성한 문서를 다른 코드 페이지에서 읽을 수 어벖어 문서 교환이 어려운 난점이 있기 때문이다. 또한 서야양 국가들의 문자는 대부분 8비트 범위 내에서 표현할 수 있지만 한국, 중국, ㅇ리본 동양 3국(CJK라고 한다)의 문자는 그 보다 문자수가 훨씬 더 많으므로 한 바이트로 모든 문자를 표현할 수가 없다. 그래서 동양 3국은 문자 하나를 표현하기 위해 2바이트를 사용하는 DBCSD(Double Byte Character Set) 체계를 사용해 왔으며 이 체계는 현재까지도 계속 사용되고 있다. 우리가 현재 사용하고 있는 DBCS는 영문, 기호는 8비트로 표현하고 한글은 16비트로 표현하는 ANSI의 확장형 문자 코드이다. SBCS와 DBCS가 섞여서 존재하며 때로는 16비트를 넘을 수도 있기 때무눈에 MBCS(Multi Byte Character Set)라고 한다. "럭키Seoul"이라는 문자열은 메모리 상에 다음과 같이 표현된다.

럭 키 S e o u l \0 --------------------------------------------------------------- (2byte)(2byte) 한글은 2바이트를 차지하며 영문은 1바이트만 차지한다. 한 문자의 길이가 일정하지 않기 때문에 바이트 길이만으로 문자의 개수를 정확하게 알 수 없는 문제가 있는데 "럭키Seoul"이라는 문자열은 모두 7개의 문자로 이루어져 있지만 배열의 크기는 9바이트(널을 제외하고)이다. 문자열중에 2바이트 짜리 문자가 몇 개나 있는지 처음부터 순서대로 세어 와야만 문자 개수를 정확하게 알 수 있다. 똑같은 길이라도 문자열을 구성하는 문자에 따라 개수가 달라지는 것이다. 또한 문자열 중간에서 바로 앞 문자를 구하고 싶을 때도 일반적인 방법으로는 구할 수 어벖으며 반드시 선두에서부터 문자를 하나씩 읽어와야만 한다. 왜냐하면 중간 위치가 문자의 선두인지 2바이트 문자의 뒷부분인지를 정확하게 알 수 없기 때문이다. 각 바이트가 2바이트짜리 문자인지 아닌지는 IsDBCSLeadByte 함수로 조사할 수 있는데 버퍼 처음부터 이 함수로 각 문자의 길이만큼 이동해야 한다. DBCS문자열의 앞 뒤 분자를 구할 때는 CharPrev, CharNext라는 함수를 사용할 수도 있으나 CharPrev 함수의 경우 속도가 굉장히 느리고 비효율적이다.

길이와 앞문자를 구하기의 비효율성보다 더 큰 문제가 있는데 DBCS는 각 코드 페이지에 따라 실제로 맵핑되어 있는 문자가 달라질 수 있어 국제적인 범용 프로그램 제작에는 부적당하다는 것이다. "럭키Seoul"이 한글 윈도우즈에서는 그대로 보이지만 중국어 윈도우나 일본어 위닌도우에서는 한글 코드 영역에 히라가나, 또는 한자 코드가 맵핑되어 있으므로 이대로 보일 리가 없다. 마찬가지로 우리가 일본 웹 사이트에 접속하거나 중국어 문서를 읽을 때도 제대로 보이지 않고 엉뚱한 한글이 보인다. 외국 문서가 정확하게 출력되려면 코드 페이지를 정확하게 선택해야 하는 불편함이 있다. 그나마도 코드 페이지란 특정 국가의 코드에 무나를 강제로 맞추는 것이기 때문에 여러 나라의 언어를 동시에 표현하고자 할 때는 전혀 도움이 되지 못한다. 예를 들어 한글로 된 일본어 교본이라든가 한중일 문자를 비교하는 논문을 작성할 대는 동시 표현을 할 방법이 없는 것이다.

이원구 조사

*내용 구성 1)문자코드란? 2)문자코드의 종류 *내용 문자코드란,단일 문자의 내부 표현을 나타내는 코드입니다. 어떻게 보면,어떠한 대상을 간략하게 표시하기 위한 일종의 약속이기도 할수 있겠지요... 문자코드는 종류가 다양합니다.

2)문자코드의 종류 위에서 언급했듯이 문자코드는 종류가 다양합니다. 문자코드에는 ASCII코드,표준BCD코드,EBCDIC코드,유니코드,한글코드가 있습니다. -ASCII 코드:아스키코드는 American Standard Code for information interchange의 약자로, 미국에서 표준화가 추진된 정보교환용 7비트 부호로 PC를 중심으로 국제적으로 사용됩니다. 또한,컴퓨터에 처리하기 용이한 8비트 데이타를 이용하기 위하여 숫자,문자,특수문자에 번호 를 부여한 것입니다. -표준 BCD코드:BCD코드는 Binary-Coded Decimal Code의 약자로,숫자,영자,특수 기호를 나타 내기 위한 6비트로 이루어지는 코드로,오류 검사용의 1비트가 부가되어,전체로서는 7비트로 구성됩니다.

안준오 조사

1. charset의 의미 charset = "coded character set" charset은 "컴퓨터에서 문자를 표현하기 위해, 각 문자를 정수값에 대응시켜 놓은 체계"를 의미합니다. 예를 들어, euc-kr charset이라면, 영숫자와 한글 그리고 일부 특수문자와 한자들을 정수값에 대응해 놓은 것입니다. euc-kr환경에서 한글을 입력하면, 컴퓨터는 euc-kr charset에서 각 문자별로 지정한 정수값을 쓰게 됩니다. 2. charset이 달라진다면.. 각 charset별로, 표현하고자하는 문자와 대응하는 정수값이 달라질 수 있습니다. 예를들어 euc-kr은 태국문자를 위한 정수값을 정의하지 않았으므로, 태국문자는 표현하거나 입력할 수 없습니다.

그리고, euc-kr charset에 맞춰 한글로 어떤 내용을 작성했는데, 이것을 iso-8859-1 charset 환경에서 열어본다면, 한글 대신에 엉뚱한 특수문자쌍들을 보게 될 것입니다. 이런 문제 때문에, 문자 데이터를 주고 받을 때는 서로 간에 charset을 일치시킬 필요가 있습니다. 그렇지 않으면, 원래 생각했는 내용 대신 "깨진 문자들"을 보게 될테니까요. ( 가끔 charset은 일치되었는데, 사용하는 폰트에 대응하는 문자가 없어서 깨져보이는 경우도 있습니다. ) 서블릿 코딩시에, content type의 일부로 charset을 명시하는 것은 웹 브라우저에게 사용하는 charset을 알려주어 오해하지 않게 하기 위해서입니다.

3. 한글을 표현할 수 있는 charset 한글을 표현할 수 있도록 설계된 charset은 euc-kr외에도, ksc5601, cp933, cp949 등등 꽤 많습니다. 그리고, 전세계 모든 문자를 표현할 목적으로 설계된 unicode역시 한글을 지원합니다. 그러나, 한글을 지원하는 charset을 사용하더라도, 문서를 만들 때 사용한 charset과 읽을 때 사용하는 charset이 다르다면, 제대로 그 내용을 볼 수 없을 것입니다. 이 경우에는 따로 conversion로직을 사용하여 원하는 charset에 맞춰 데이터를 가공해야 할 것입니다. ( euc-kr, ksc5601 같은 경우는 거의 차이가 없어 호환가능합니다. )

3. 영문 OS에서 한글 표현 charset에 맞추어 문자데이터를 처리하는 것은 OS나 DBMS, 미들웨어 등 플랫폼이므로, 플랫폼에서 제공해주지 않는 charset을 사용할 수는 없습니다. 다행히도, 최근의 플랫폼 SW들은 다양한 charset 지원을 포함하고 있습니다. 만약 어떤 OS가 euc-kr모드로 작동하고 있다면, 설령 영문OS라 하더라도, 한글 처리에 문제가 없다고 볼 수 있습니다. 문제가 있다면 euc-kr모드로 작동하고 있는 것이 아니겠죠. 저 같은 경우, 영문 OS를 설치하고, 그 위에서 한글을 사용해 본 적이 있습니다.

4. encoding charset과 비슷한 의미로 사용하는 단어로 encoding이 있습니다. charset이 문자에 대해 정수값을 지정한 것이라면, encoding은 "문자를 표현하는 정수값을 어떤 bit배열로 표현할 것"인지를 의미합니다. 대부분의 경우, charset과 encoding을 구별할 필요가 없습니다. 왜냐하면 정수값을 bit배열로 표현하는 방법은 하나만 있을테니까요. 그러나 unicode 경우에는 UTF-8, UTF-16 같이 몇 가지 다른 encoding을 사용합니다. charset이 같다면, 그 charset을 지원하는 어떤 encoding을 사용하든지, 각 문자에 대응하는 논리적인 정수값은 동일합니다. 그러나 실제로 기록되는 bit배열은 encoding에 따라 달라질 수 있습니다. 이 경우, 제대로 데이터를 주고 받으려면, charset뿐 아니라 encoding까지도 맞춰야 합니다.

성민영 조사

문자 인코딩 또는 줄여서 인코딩은 문자나 기호들의 집합을 컴퓨터에서 저장하거나 통신에 사용할 목적으로 부호화하는 방법을 가리킨다. 문자 인코딩을 통해 부호화되어, 복호화하면 본래의 문자나 기호를 뜻하게 되는 부호를 문자 코드라고 한다. 문자 인코딩의 대표적인 예로 전건을 길게, 또는 짧게 두드려서 라틴 알파벳을 나타내는 모스 부호가 있으며, 라틴 알파벳, 숫자, 특수 문자 등을 정수와 그에 대응되는 7비트 이진수로 표현하는 방법인 아스키가 있다. 컴퓨팅 초기에는, 아스키, EBCDIC과 같은 문자열 세트가 표준으로 자리잡았다. 이러한 문자열 세트의 제한은 명백했으며 수많은 애드혹 방식이 개발되었다. 한중일 계열의 동아시아 스크립트를 포함하여 다중 문자 지원이 시급했다.

문자 인코딩의 구성 문자 집합 또는 문자셋은 정보를 표현하기 위한 글자들의 집합을 정의한 것으로, 직접적으로 사용되지 않을 수도 있고 한 문자 집합을 여러 문자 인코딩에서 쓸 수도 있다. 특히 집합 안의 문자들에 음수가 아닌 정수들을 배정한 것을 부호화된 문자 집합이라 한다. 문자 집합은 ASCII와 같이 더 이상의 문자가 추가될 수 없기도 하고, 유니코드와 같이 문자가 계속 추가될 수 있기도 하다. 일반적으로 문자 집합과 문자 인코딩은 어떤 문자를 사용할 수 있으며 어떤 식으로 표현되는지를 나타낸다는 데서 동의어로 취급되기도 한다. 역사적인 이유로 MIME이나 그에 기반한 시스템은 문자 집합을 문자 인코딩을 나타내는 데 사용한다.

문자 인코딩 형태는 특정한 문자 집합 안의 문자들을 컴퓨터 시스템에서 사용할 목적으로 일정한 범위 안의 정수들로 변환하는 방법이다. 여기에는 유니코드 코드 포인트를 8비트 숫자의 집합으로 나타내는 UTF-8이나, 16비트 숫자의 집합으로 나타내는 UTF-16, 그리고 대부분의 일반적인 문자 인코딩들이 포함된다. 문자 인코딩 구조는 문자 인코딩 형태로 변환된 코드값을 옥텟 기반의 시스템에서 사용하기 위하여 옥텟들으로 변환하는 방법이다. 대부분의 문자 인코딩 형태는 이 과정에서 아무런 일도 일어 나지 않으며, 8비트 이상의 숫자를 사용하는 UTF-16과 같은 문자 인코딩 형태의 경우 엔디안을 지정해 주는 것으로 충분하다. 여기에는 ISO 2022와 같은 복합 인코딩이나, SCSU와 같은 압축 방법 등이 속한다