유니 코드에 대해 무엇을 알아야합니까?
응용 프로그램 개발자로서 유니 코드를 알아야합니까?
유니 코드는 서면 통신에 사용되는 글리프의 숫자 코드를 정의하는 표준입니다. 또는 그들이 스스로 말하는대로 :
전 세계의 모든 언어를 작성하는 데 사용되는 문자의 디지털 표현에 대한 표준입니다. 유니 코드는 모든 언어로 된 텍스트를 저장, 검색 및 교환하는 통일 된 수단을 제공합니다. 모든 최신 컴퓨터에서 사용되며 인터넷에서 텍스트를 처리하기위한 기반입니다. 유니 코드는 유니 코드 컨소시엄에서 개발 및 유지 관리합니다.
유니 코드 및 인코딩에 대해 스스로 교육하지 않는 개발자가 저지르는 일반적이지만 쉽게 피할 수있는 프로그래밍 오류가 많이 있습니다.
- 먼저 권위 있고 자세한 정보 및 구현 지침을 보려면 소스 로 이동 하십시오.
- 다른 사람들이 언급했듯이 Joel Spolsky는 이러한 오류에 대한 좋은 목록 을 가지고 있습니다.
- 또한 Elliotte Rusty Harold의 Ten Commandments of Unicode를 좋아 합니다.
- 개발자는 또한 정식 표현 공격에주의해야합니다.
알아야 할 주요 개념 중 일부는 다음과 같습니다.
- 글리프 — 글씨체를 나타내는 데 사용되는 구체적인 그래픽입니다.
- 컴포지션 -글리프를 결합하여 다른 글리프를 만듭니다.
- 인코딩 — 유니 코드 변환은 바이트 스트림을 가리 킵니다.
- 데이터 정렬 — 유니 코드 문자열의 로케일 구분 비교.
다른 링크를 추가하는 것만으로도 unicode.org 는 멋진 리소스입니다.
요컨대, 문자 그대로 인간이 사용한 모든 문자를 처리하도록 설계된 ASCII를 대체합니다. 유니 코드는 이러한 모든 문자를 처리하기 위해 항상 인코딩 체계를 가지고 있습니다. 요즘 표준 인 UTF-8은 문자 당 단일 바이트를 유지하기 위해 정말 열심히 작동하며 처음 7 비트의 경우 ASCII와 동일합니다.
(부록으로, 국제화를 수행 할 경우에만 유니 코드에 대해 알면된다는 프로그래머들 사이에 대중적인 오해가 있습니다. 확실히 하나의 용도이지만 유일한 용도는 아닙니다. 예를 들어, 저는 영어 텍스트 만 사용하는 프로젝트-하지만 엄청난 수의 멋진 수학 기호가 있습니다. 전체 프로젝트를 완전히 유니 코드로 옮기면 제가 셀 수있는 것보다 더 많은 문제가 해결되었습니다.)
유니 코드는 세계의 문자 시스템을 표현할 수있는 능력을 가진 텍스트를 일관되게 표현하기 위해 업계에서 합의한 표준입니다. 세계화에 대한 관심이 증가하고 있으므로 모든 개발자는 이에 대해 알아야합니다.
유니 코드를 처리하기위한 하나의 (오픈) 코드 소스는 ICU -Internationalization Components for Unicode입니다. 여기에는 Java 용 ICU4J와 C 및 C ++ 용 ICU4C가 포함됩니다 (C 인터페이스 제공, C ++ 컴파일러 사용).
유니 코드는 ASCII (영문 문자 만 포함, 127 자, 실제로 인쇄 할 수없는 제어 문자) 이외의 문자 집합은 알려진 모든 언어 (중국어, 러시아어, 그리스어, 아라비아어 등) 및 아마 들어 보지 못한 일부 언어 (더 이상 사용되지 않는 죽은 언어 기호가 많지만 고대 문서를 보관하는 데 유용함).
따라서 수십 개의 서로 다른 문자 인코딩을 처리하는 대신 모든 인코딩에 대해 하나의 인코딩을 사용합니다 (또한 단일 텍스트 문자열 내에서 다른 언어의 문자를 쉽게 혼합 할 수 있습니다. 텍스트 문자열의 중간). 실제로 여전히 충분한 공간이 남아 있습니다. 2 미오 문자를 모두 사용하는 것과는 거리가 멀습니다. 유니 코드 컨소시엄은 기호 공간 부족을 두려워하지 않고 다른 100 개 언어에 대한 기호를 쉽게 추가 할 수 있습니다.
오늘날 도서관에서 찾을 수있는 모든 언어로 된 거의 모든 책을 유니 코드로 표현할 수 있습니다. 유니 코드는 인코딩 자체의 이름이며 "바이트"로 표현되는 방식은 다른 문제입니다. UTF-8과 같은 유니 코드 문자를 작성하는 방법에는 여러 가지가 있습니다 (문자 번호에 따라 1 ~ 6 바이트는 단일 문자를 나타내며 영어는 거의 항상 1 바이트, 다른 로마어는 2 ~ 3 바이트, 중국어 / 일본어는 더 많을 수 있음) , UTF-16 (대부분의 문자는 2 바이트, 일부 드물게 사용되는 문자는 4 바이트) 및 UTF-32, 모든 문자는 4 바이트입니다. 다른 것들이 있지만 이것이 지배적 인 것입니다.
유니 코드는 많은 최신 OS (Mac OS X에서는 거의 모든 것이 유니 코드 임) 및 프로그래밍 언어 (자바는 기본 인코딩으로 유니 코드를 사용하며 일반적으로 UTF-16을 사용하는 기본 인코딩입니다. Python도 마찬가지로 UTF-16을 사용한다고 들었습니다. 32). 일반 영어 텍스트 이외의 내용을 표시, 저장 또는 처리해야하는 앱을 작성하려는 경우 유니 코드에 익숙해지는 것이 빠를수록 좋습니다.
유니 코드는 문자를 열거하고 고유 한 숫자 ID ( "코드 포인트"라고 함)를 제공하는 표준입니다. 그것은 대부분의 현대 서면 언어에 대한 매우 크고 성장하는 문자 세트와 고대 그리스 음악 표기법과 같은 많은 이국적인 것들을 포함합니다.
다른 문자 인코딩 체계 (예 : ASCII 또는 ISO-8859 표준)와 달리 유니 코드는 이러한 문자를 바이트로 표현하는 것에 대해 아무 말도하지 않습니다. 문자에 범용 ID 세트를 제공합니다. 따라서 유니 코드가 "ASCII의 16 비트 대체품"이라고 말하는 것은 잘못된 것입니다.
UTF-8, UTF-16 등을 포함하여 임의의 유니 코드 문자를 바이트 단위로 나타낼 수있는 다양한 인코딩 체계가 있습니다.
그것을 사용하기 위해 유니 코드를 배울 필요가 없습니다. 그것은 지옥의 복잡한 규범입니다. 주요 문제와 프로그래밍 도구가이 문제를 처리하는 방법 만 알면됩니다. 이를 배우려면 Galwegian의 링크와 프로그래밍 언어 및 ide 문서를 확인하십시오.
예 :
모든 caracter를 latin-1에서 유니 코드로 변환 할 수 있지만 모든 caracter에 대해 다른 방식으로 작동하지는 않습니다. PHP를 사용하면 stristr과 같은 일부 함수가 유니 코드에서 작동하지 않습니다. 파이썬은 이렇게 유니 코드 문자열을 선언합니다 : u "Hello World".
그것은 당신이 알아야 할 얇은 종류입니다.
유니 코드를 사용하지 않을 좋은 이유가 없다면 그냥 사용하십시오.
참조 URL : https://stackoverflow.com/questions/222386/what-do-i-need-to-know-about-unicode
'Programing' 카테고리의 다른 글
Markdown / Rdiscount에서 번호가 매겨진 제목이 가능합니까? (0) | 2021.01.08 |
---|---|
RecyclerView를 NestedScrollView에 넣는 방법은 무엇입니까? (0) | 2021.01.08 |
장기 실행 자바 스크립트가 브라우저를 잠그지 않도록 방지 (0) | 2021.01.08 |
변수 값에서 접미사 #DEN은 무엇을 의미합니까? (0) | 2021.01.08 |
계속하기 전에 여러 비동기 호출이 완료 될 때까지 대기 (0) | 2021.01.08 |