LangDev

차이점

이 페이지의 선택한 이전 버전과 현재 버전 사이의 차이점을 보여줍니다.

차이 보기로 연결

unicode-support [2012/01/21 22:55] (현재)
lifthrasiir 기존 위키에서 가져옴
줄 1: 줄 1:
 +====== 유니코드 지원 ======
 +
 +  * [[en>Unicode|유니코드에 대한 기본적인 소개]]
 +  * [[en>UTF-8#Description|UTF-8 소개]]
 +  * [[http://unicode.org/Public/UNIDATA/UCD.html|유니코드 문자 데이터베이스(UCD)]]: 유니코드의 각 문자들에 대한 자료
 +    * UnicodeData.txt: 수록된 내용은 꼭 이해하고 넘어 가시는 게 좋습니다. UAX #31 등의 구현에 필요합니다.
 +    * 문자열을 소문자로 바꾸거나 대문자로 바꾸거나 하는 작업은 CaseFolding.txt 등을 참고하시길 바랍니다. 유니코드 책 4장(아마도)에 관련 알고리즘도 쓰여 있을 겁니다.
 +  * [[http://www.unicode.org/reports/tr31/|UAX #31]]: 식별자(identifier)에 사용될 수 있는 문자와 문법에 사용될 수 있는 문자에 대해서 설명하고 있습니다. 쉽게 말하면 ID_Start로 시작하고 ID_Continue가 뒤에 붙는 문자열은 모두 식별자로 처리한다면 되는 소린데, 이들 집합을 UCD에서 정의하기 때문에 위에서 UCD를 이해하라고 한 겁니다. ;)
 +  * [[http://www.unicode.org/reports/tr15/|UAX #15]]: 하나의 문자열이 유니코드에서 여러 가지 형태로 표현될 수 있습니다. 이런 형태를 하나의 형태로 정규화해 주는 알고리즘이 유니코드 표준에 있는데, 흔히 NFC, NFD, NFKC, NFKD라고 하는 것들이 정규화 알고리즘입니다.
 +
 +여기까지가 일반 언어에 관련된 것이고, 국제화(i18n) 및 지역화(l10n)를 신경쓰고 싶으시다거나 기타 등등을 원하신다면 이것도 읽어 보시길 권합니다.
 +
 +  * 유니코드를 지원하는 정규식을 표준 라이브러리에 넣으신다면 [[http://www.unicode.org/reports/tr18/|UTS #18]]을 참고하세요. 다만 내용이 꽤나 방대하다는 게 문제인데, 특히 level 3 support 부분은 상당히 손이 많이 갈 것 같습니다. 적절히 필요한 만큼만 구현하면 될 듯.
 +  * 문자열을 단순히 코드포인트 순서대로 비교하지 않는다면 collation을 신경써야 겠죠. [[http://www.unicode.org/reports/tr10/|UTS #10]]이 많은 도움이 될 것입니다. 다만 모든 collation 알고리즘은 어떤 형태로든 collation data가 있어야 한다는 점이 문제네요.
 +  * 수학과 밀접하게 연관되는 언어를 원하신다면 [[http://www.unicode.org/reports/tr25/|UTR #25]]에 수학과 관련된 유니코드 지원에 대한 내용이 쓰여 있습니다. [[Fortress]] 같은 언어들도 참고해 보세요.
 +
 +(from http://langdev.net/post/138)
  
맨위로
unicode-support.txt · 마지막 수정: 2012/01/21 22:55 작성자 lifthrasiir