문자 집합과 문자 부호화 방식에 대해서
2240 단어 문자 코드
소개
몇 년 전의 이야기입니다만, 「MySQL 에 등록한 데이터가 문자화되어 있습니다만, 문자 코드를 UTF-8 로부터 Unicode 로 바꾸면 고칠까요?」라고 하는 의미 불명한 것을 질문되었습니다 . (나의 주위에서는··) 이번에는 벌써 거의 UTF-8 로 취급하는 것이 많아, 문자 코드로 고민되는 일도 적어졌습니다만, 그래서 기본적인 것을 남겨두겠다고 생각합니다.
문자 집합이란?
읽고 글자처럼 문자의 "집합"입니다. Wikpedia의 집합 페이지를 보면
수학에서의 집합(슈고, 영국: set, 부처: ensemble, 독: Menge)이란, 대략적으로 말하면 몇개의 「물건」으로 이루어지는 「모임」이다.
라고 써 있습니다. 덜 구체적이었습니다
나 나름의 말로 표현하면 「문자 집합에 포함되는 문자, 포함되지 않는 문자가 명확하게 되어 있다」 「문자 집합에 포함되는 문자가 1개 1개 구별할 수 있다」라고 하는 느낌입니까. 음, 불필요하게 이해하기 어렵다 ··?
문자 인코딩 방식이란?
이른바 "인코딩"입니다. 문자의 집합을 컴퓨터로 취급할 수 있도록 한 것으로, 대표적인 것에는 UTF-8, Shift_JIS, EUC-JP 등이 있습니다.
문자 집합에 포함되는 임의의 문자와 그 encode 된 문자의 사이에는 1 대 1 의 대응이 존재합니다.
좀 더 구체적으로 · ·
이해하기 쉽도록 섬세한 부분은 끝이 접힙니다.
세세한 부분을 제대로 설명할 수 있는 자신감도 없기 때문에, 이 투고를 보신 여러분 스스로 보다 자세하게 조사하는 것을 추천합니다.
일본어의 문자 집합으로서 주요한 것에는 아래와 같이 2개가 있습니다.
JIS 한자 코드
문자에 구와 점의 번호가 할당되고 있는 것
부호화 방식으로는 주로 Shift_JIS나 EUC-JP가 있다
유니코드
문자에 코드 포인트라는 번호가 할당 된 것
인코딩 방식으로는 주로 UTF-8과 UTF-16이 있습니다.
같은 문자 집합을 베이스로 하고 있는 Shift_JIS 와 EUC-JP 사이는 기본적으로는 encode 방식을 변환할 수가 있습니다. 위에서 언급했듯이 문자 집합과 인코딩 체계 사이에는 일대일 대응이 있으므로 구역 번호를 통해 Shift_JIS와 EUC-JP 사이에도 일대일 대응이 존재합니다. 합니다.
한편, 다른 문자 집합의 Shift_JIS 와 UTF-8 입니다만, 원래 집합이 다르기 때문에, 보통으로는 변환할 수 없습니다. 실제로 변환 프로그램을 본 적도 쓴 적도 없지만, 아마 변환표와 같은 것을 사용하고 있다고 생각됩니다. (다르면 미안해)
문자 집합이 다르기 때문에, Shift_JIS 의 파 대시(~)를 UTF-8 의 "WAVE DASH"와 "FULLWIDTH TILDE"의 어느 쪽에 대응 붙일까? 같은 문제도 발생하네요. UTF-8 에서 Shift_JIS 로의 변환이라면 1개로 정해지지만··(수학 용어로 말하면 전사).
사이고에게
전하고 싶은 것은, 「문자 코드의 한마디로 끝나지 않고, 집합의 개념과 encode 방식을 제대로 의식해 취급합시다」라고 하는 것입니다.
여담
UTF-16은 2바이트 단위로 문자를 처리하기 때문에 파일의 시작 부분에 바이트 순서 표시(소위 BOM)를 두어 해당 파일이 어느 엔디안에서 작성되었는지를 판별합니다. 반면, UTF-8은 1바이트 단위로 처리하므로, 본래 BOM은 불필요합니다만, 왠지 BOM을 붙일 수도 있다고 하는 이상한 일이 되고 있습니다.
Reference
이 문제에 관하여(문자 집합과 문자 부호화 방식에 대해서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/obaQ/items/ec9c05bba6d45eb23dff
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
읽고 글자처럼 문자의 "집합"입니다. Wikpedia의 집합 페이지를 보면
수학에서의 집합(슈고, 영국: set, 부처: ensemble, 독: Menge)이란, 대략적으로 말하면 몇개의 「물건」으로 이루어지는 「모임」이다.
라고 써 있습니다. 덜 구체적이었습니다
나 나름의 말로 표현하면 「문자 집합에 포함되는 문자, 포함되지 않는 문자가 명확하게 되어 있다」 「문자 집합에 포함되는 문자가 1개 1개 구별할 수 있다」라고 하는 느낌입니까. 음, 불필요하게 이해하기 어렵다 ··?
문자 인코딩 방식이란?
이른바 "인코딩"입니다. 문자의 집합을 컴퓨터로 취급할 수 있도록 한 것으로, 대표적인 것에는 UTF-8, Shift_JIS, EUC-JP 등이 있습니다.
문자 집합에 포함되는 임의의 문자와 그 encode 된 문자의 사이에는 1 대 1 의 대응이 존재합니다.
좀 더 구체적으로 · ·
이해하기 쉽도록 섬세한 부분은 끝이 접힙니다.
세세한 부분을 제대로 설명할 수 있는 자신감도 없기 때문에, 이 투고를 보신 여러분 스스로 보다 자세하게 조사하는 것을 추천합니다.
일본어의 문자 집합으로서 주요한 것에는 아래와 같이 2개가 있습니다.
JIS 한자 코드
문자에 구와 점의 번호가 할당되고 있는 것
부호화 방식으로는 주로 Shift_JIS나 EUC-JP가 있다
유니코드
문자에 코드 포인트라는 번호가 할당 된 것
인코딩 방식으로는 주로 UTF-8과 UTF-16이 있습니다.
같은 문자 집합을 베이스로 하고 있는 Shift_JIS 와 EUC-JP 사이는 기본적으로는 encode 방식을 변환할 수가 있습니다. 위에서 언급했듯이 문자 집합과 인코딩 체계 사이에는 일대일 대응이 있으므로 구역 번호를 통해 Shift_JIS와 EUC-JP 사이에도 일대일 대응이 존재합니다. 합니다.
한편, 다른 문자 집합의 Shift_JIS 와 UTF-8 입니다만, 원래 집합이 다르기 때문에, 보통으로는 변환할 수 없습니다. 실제로 변환 프로그램을 본 적도 쓴 적도 없지만, 아마 변환표와 같은 것을 사용하고 있다고 생각됩니다. (다르면 미안해)
문자 집합이 다르기 때문에, Shift_JIS 의 파 대시(~)를 UTF-8 의 "WAVE DASH"와 "FULLWIDTH TILDE"의 어느 쪽에 대응 붙일까? 같은 문제도 발생하네요. UTF-8 에서 Shift_JIS 로의 변환이라면 1개로 정해지지만··(수학 용어로 말하면 전사).
사이고에게
전하고 싶은 것은, 「문자 코드의 한마디로 끝나지 않고, 집합의 개념과 encode 방식을 제대로 의식해 취급합시다」라고 하는 것입니다.
여담
UTF-16은 2바이트 단위로 문자를 처리하기 때문에 파일의 시작 부분에 바이트 순서 표시(소위 BOM)를 두어 해당 파일이 어느 엔디안에서 작성되었는지를 판별합니다. 반면, UTF-8은 1바이트 단위로 처리하므로, 본래 BOM은 불필요합니다만, 왠지 BOM을 붙일 수도 있다고 하는 이상한 일이 되고 있습니다.
Reference
이 문제에 관하여(문자 집합과 문자 부호화 방식에 대해서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/obaQ/items/ec9c05bba6d45eb23dff
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이해하기 쉽도록 섬세한 부분은 끝이 접힙니다.
세세한 부분을 제대로 설명할 수 있는 자신감도 없기 때문에, 이 투고를 보신 여러분 스스로 보다 자세하게 조사하는 것을 추천합니다.
일본어의 문자 집합으로서 주요한 것에는 아래와 같이 2개가 있습니다.
JIS 한자 코드
문자에 구와 점의 번호가 할당되고 있는 것
부호화 방식으로는 주로 Shift_JIS나 EUC-JP가 있다
유니코드
문자에 코드 포인트라는 번호가 할당 된 것
인코딩 방식으로는 주로 UTF-8과 UTF-16이 있습니다.
같은 문자 집합을 베이스로 하고 있는 Shift_JIS 와 EUC-JP 사이는 기본적으로는 encode 방식을 변환할 수가 있습니다. 위에서 언급했듯이 문자 집합과 인코딩 체계 사이에는 일대일 대응이 있으므로 구역 번호를 통해 Shift_JIS와 EUC-JP 사이에도 일대일 대응이 존재합니다. 합니다.
한편, 다른 문자 집합의 Shift_JIS 와 UTF-8 입니다만, 원래 집합이 다르기 때문에, 보통으로는 변환할 수 없습니다. 실제로 변환 프로그램을 본 적도 쓴 적도 없지만, 아마 변환표와 같은 것을 사용하고 있다고 생각됩니다. (다르면 미안해)
문자 집합이 다르기 때문에, Shift_JIS 의 파 대시(~)를 UTF-8 의 "WAVE DASH"와 "FULLWIDTH TILDE"의 어느 쪽에 대응 붙일까? 같은 문제도 발생하네요. UTF-8 에서 Shift_JIS 로의 변환이라면 1개로 정해지지만··(수학 용어로 말하면 전사).
사이고에게
전하고 싶은 것은, 「문자 코드의 한마디로 끝나지 않고, 집합의 개념과 encode 방식을 제대로 의식해 취급합시다」라고 하는 것입니다.
여담
UTF-16은 2바이트 단위로 문자를 처리하기 때문에 파일의 시작 부분에 바이트 순서 표시(소위 BOM)를 두어 해당 파일이 어느 엔디안에서 작성되었는지를 판별합니다. 반면, UTF-8은 1바이트 단위로 처리하므로, 본래 BOM은 불필요합니다만, 왠지 BOM을 붙일 수도 있다고 하는 이상한 일이 되고 있습니다.
Reference
이 문제에 관하여(문자 집합과 문자 부호화 방식에 대해서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/obaQ/items/ec9c05bba6d45eb23dff
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
UTF-16은 2바이트 단위로 문자를 처리하기 때문에 파일의 시작 부분에 바이트 순서 표시(소위 BOM)를 두어 해당 파일이 어느 엔디안에서 작성되었는지를 판별합니다. 반면, UTF-8은 1바이트 단위로 처리하므로, 본래 BOM은 불필요합니다만, 왠지 BOM을 붙일 수도 있다고 하는 이상한 일이 되고 있습니다.
Reference
이 문제에 관하여(문자 집합과 문자 부호화 방식에 대해서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/obaQ/items/ec9c05bba6d45eb23dff텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)