문제

내가 가지고 싶다면 정규소 수영장에 대한 정보를 유니코드 지원에서 다양한 언어로 대응하고 있습니다.그것은 부분의 핵심 언어?그것은에서 제공하는 라이브러리?그것이 가능합니다.이 있는 리소스의 인기 리소스 유니코드에 대한 정보의 언어?당 하나의 언어에 대답하십시오.또한할 수 있다면 만들어 제목하는 것을 더 쉽게 찾을 수 있습니다.

올바른 솔루션이 없습니다

다른 팁

Perl에는 주로 유니 코드 지원이 내장되어 있습니다. 일종의. Perldoc에서 :

  • perlunitut - Perl에서 유니 코드 사용에 대한 튜토리얼. 당신이해야 할 일에 대해 절대적인 용어로 가르치고 유니 코드까지해야 할 일에 대해 가르칩니다. 기본 사항을 다룹니다.
  • Perlunifaq - Perl의 유니 코드에 대해 자주 묻는 질문.
  • Perluniintro - Perl의 유니 코드 소개. "설교"보다 적습니다 perlunitut.
  • perlunicode - 당신이 절대적으로 모든 것을 알아야 할 때 유니 코드와 perl에 대해 알아야 할 것이 있습니다.

파이썬 3K

Python 3K (또는 3.0 또는 3000)는 텍스트 처리 (유니 코드) 및 데이터에 대한 새로운 접근 방식이 있습니다.
텍스트 대 유니 코드 대신 데이터 8 비트. 또한보십시오 유니 코드 howto.

자바

.NET와 동일하게 Java는 내부적으로 UTF-16을 사용합니다. java.lang.string

String UTF-16 형식의 문자열을 나타냅니다 보충 문자 에 의해 표현됩니다 대리 쌍 (섹션을 참조하십시오 유니 코드 문자 표현 에서 Character 자세한 내용은 클래스). 인덱스 값을 참조하십시오 char 코드 단위이므로 보충 문자는 String.

HQ9+

Q 명령에는 대부분의 구현에서 완전한 유니 코드 지원이 있습니다.

델파이

Delphi 2009는 유니 코드를 완전히 지원합니다. 그들은 구현을 변경했습니다 string 기본적으로 16 비트 유니 코드 인코딩으로, 타사를 포함한 대부분의 라이브러리는 유니 코드를 지원합니다. Marco Cantù 's를 참조하십시오 델파이와 유니 코드.

Delphi 2009 이전에 유니 코드에 대한 지원은 제한되었지만 WideChar 그리고 WideString 16 비트 인코딩 된 문자열을 저장합니다. 보다 델파이의 유니 코드 더 많은 정보를 위해서.

유니 코드를 사용하지 않고도 여전히 이중 언어 CJKV 응용 프로그램을 개발할 수 있습니다. 예를 들어, 시프트 JIS 일본어 용 인코딩 된 문자열은 평원을 사용하여 저장할 수 있습니다 AnsiString.

가다

구글 프로그래밍 언어로 이동하십시오 유니 코드를 지원하고 UTF-8과 함께 작동합니다.

파이썬

Python 2에는 수업이 있습니다 str 그리고 unicode. str 물체 저장 바이트, unicode 객체는 UTF-16 문자를 저장합니다. 대부분의 라이브러리 기능은 둘 다 지원합니다 (예 : os.listdir('.') 목록을 반환합니다 str, os.listdir(u'.') 목록을 반환합니다 unicode 사물). 둘 다 가지고 있습니다 encode 그리고 decode 행동 양식.

Python 3은 기본적으로 이름이 바뀌 었습니다 unicode 에게 str. Python 3은 동등합니다 str 유형이 될 것입니다 bytes. bytes a decode 그리고 str an encode 방법. 파이썬 3.3 이후 str 객체는 메모리를 저장하기 위해 여러 인코딩 중 하나를 내부적으로 사용합니다. 파이썬 프로그래머의 경우 여전히 추상 유니 코드 시퀀스처럼 보입니다.

파이썬 지원 :

  • 인코딩/디코딩
  • 표준화
  • 공백에서 간단한 케이스 변환 및 분할
  • 그들의 이름으로 캐릭터를 찾고 있습니다

Python은 지원하지 않습니다.

  • Collation (제한)
  • 소문자와 대문자 사이에 1 : 1 매핑이없는 특수 사례 변환
  • 정규 표현식 (계속 진행되었습니다)
  • 텍스트 분할
  • 양방향 텍스트 처리

또한보십시오: 파이썬의 유니 코드에 대한 진실

자바 스크립트

JS 1.3 이전에는 유니 코드에 대한 지원이 없었습니다. 1.5, UTF-8, UTF-16 및 UCS-2가 모두 지원됩니다. 문자열, Regex 및 식별자에서 유니 코드 이스케이프 시퀀스를 사용할 수 있습니다.원천

.NET (C#, vb.net, ...)

.NET 매장 문자열 내부적으로 순서로 System.Char 사물. 하나 System.Char UTF-16을 나타냅니다 코드 단위.

MSDN 문서에서 System.Char:

.NET 프레임 워크는 다음을 사용합니다 유니 코드 문자를 나타내는 구조. 유니 코드 표준은 코드 포인트라고하는 고유 한 21 비트 스칼라 번호로 각 유니 코드 문자를 식별하고 코드 포인트가 하나 이상의 16 비트 값의 시퀀스로 인코딩되는 방법을 지정하는 UTF-16 인코딩 양식을 정의합니다. 각 16 비트 값은 16 진수 0x0000에서 0xffff까지이며 구조.

추가 리소스 :

TCL

TCL 문자열은 그 이후로 유니 코드 문자의 시퀀스였습니다 TCL 8.1 (1999). 내부적으로 그들은 UTF-8 사이에 동적으로 변형됩니다 (엄격하게 Java와 동일한 수정 UTF-8 처리로 인해 U+00000 캐릭터) 및 UCS-2 (물론 호스트 엔지니어 및 BOM). OS와 통신하는 데 사용되는 모든 외부 문자열 (한 가지 예외)은 호스트에 필요한 인코딩으로 변환되기 전에 내부적으로 유니 코드 (또는 통신 채널에서 수동으로 구성됨). 예외는 데이터가있는 위치입니다 두 통신 채널간에 복사 직접 사본이없는 이진 전송이 사용되는 공통 인코딩 (및 여기에서 독일어가 아닌 몇 가지 다른 제한).

BMP 외부의 문자는 현재 내부 또는 외부 적으로 처리되지 않습니다. 이것은 알려진 문제입니다.

R6RS 체계

유니 코드 5.1의 구현이 필요합니다. 모든 문자열은 '유니 코드 형식'입니다.

녹의 문자열은(std::String&str 용)항상 유효한 UTF-8 사용하지 않 null,터미네이터 및할 수 있습니다 결과로 인덱싱되지 않을 배열로,그들처럼 될 수 있습 C/C++,etc.들 수 있습니다 슬라이스 다소 다음과 같를 사용하여 이동 .get 이후 1.20,경고와 함께 실패한다는 당신이 시도하는 경우 슬라이스의 코드는 점이다.

녹도 OsStr/OsString 에 대한 상호 작용하는 호스트와 OS.그것은 바이트 배열에 유닉스(하나를 포함하는 순서는 바이트).윈도우에서 그것은 WTF-8 일(수퍼 설정은 UTF-8 를 처리하는 부적절하게 형성되는 유니코드 문자열에서 허용되는 윈도우와 자바스크립트), &strString 자유롭게 할 수 있으로 변환 OsStrOsString, 지만,필요한 검사를 은밀한 다른 방법이다.에 의해 하나에서 실패하는 잘못된 유니코드,또는 대체로 유니코드 교체 char.(도 Path/PathBuf, 는 래퍼 OsStr/OsString).

CStrCString 유형을 나타내는 Null 로 끝 C 문자열음 OsStr 유닉스에서 그들이 포함될 수 있는 임의의 바이트입니다.

녹 직접 지원하지 않 UTF-16.그러나 할 수 있으로 변환 OsStr 을 UCS-2 응용 프로그램을 시작합니다.

일반 LISP (SBCL 및 CLISP)

에 따르면 이것, SBCL 그리고 Clisp 유니 코드를 지원합니다.

대상 c

C 문자열 라이브러리의 일부로 사용할 수있는 모든 것 외에는 내장되지 않았습니다.

그러나 일단 프레임 워크를 추가하면…

재단 (코코아 및 코코아 터치) 및 핵심 재단

NSString 및 CFString은 각각 완전히 유니 코드 기반 문자열 클래스 (실제로 여러 클래스, 구현 세부 사항)를 구현합니다. 두 사람은 "무료로 브리지"되므로 API는 다른 하나의 인스턴스와 함께 사용할 수 있고 그 반대도 마찬가지입니다.

반드시 텍스트를 나타내지 않는 데이터의 경우 NSDATA 및 CFDATA가 있습니다. NSString은 메소드를 제공하고 CFString은 텍스트를 데이터로 인코딩하고 데이터에서 텍스트를 디코딩하는 기능을 제공합니다. Core Foundation은 모든 형태의 UTF를 포함하여 백 이상의 다른 인코딩을 지원합니다. 인코딩은 두 그룹으로 나뉩니다. 내장 인코딩, 어디에서나 지원되는 것입니다 외부 인코딩, 적어도 Mac OS X에서 지원됩니다.

NSString은 형태 D, KD, C 또는 KC에 정규화하는 방법을 제공합니다. 각각은 새 문자열을 반환합니다.

NSString과 CFString은 모두 다양한 비교/콜레이션 옵션을 제공합니다. 여기에 있습니다 재단의 비교 옵션 플래그 그리고 Core Foundation의 비교 옵션 플래그. 그것들은 모두 동의어가 아닙니다. 예를 들어, Core Foundation은 문자 그대로 (엄격한 코드 포인트 기반) 비교를 기본값을 비교하는 반면, Foundation은 기본값을 비교적 비교 (악센트가있는 문자를 동일하게 비교할 수 있음)를 비교합니다.

Core Foundation에는 Objective-C가 필요하지 않습니다. 실제로, 직선 C 또는 C ++를 사용한 Carbon Programmers에 Foundation의 대부분의 기능을 제공하기 위해 만들어졌습니다. 그러나 나는 그것의 대부분의 현대적인 사용이 Cocoa 또는 Cocoa Touch 프로그램에 있다고 생각합니다.이 프로그램은 모두 Objective-C 또는 Objective-C ++로 작성되었습니다.

C/C ++

C99 이전의 C는 유니 코드 지지대에 내장되어 있지 않습니다. 0이 종료 된 문자 배열을 사용합니다 (char* 또는 char[]) 문자열로. ㅏ char 바이트 (8 비트)에 의해 지정됩니다.

C99는 지정합니다 wcs-오래된 것 외에 장애 str-장애 (예 : strlen -> wcslen). 이러한 기능은 사용됩니다 wchar_t* 대신에 char*. wchar_t 넓은 문자 유형을 나타냅니다. 의 크기 wchar_t 컴파일러-특이 적이며 8 비트만큼 작을 수 있습니다. 다른 컴파일러는 실제로 다른 크기를 사용하지만 일반적으로 16 비트 (UTF-16) 또는 32 비트 (UTF-32)입니다.

대부분의 C 라이브러리 기능은 UTF-8에 투명합니다. 예 : 운영 체제가 UTF-8을 지원하는 경우 (및 UTF-8이 시스템 숯으로 구성되어 있다면) fopen UTF-8 인코딩 된 문자열을 전달하면 올바르게 명명 된 파일이 생성됩니다.

C ++

C ++의 상황은 매우 유사합니다 (std::string -> std::wstring),하지만 적어도 일종의 노력이 있습니다. 표준 라이브러리의 유니 코드 지원.

D는 UTF-8, UTF-16 및 UTF-32 (각각 Char, WCHAR 및 DCHAR)를 지원합니다. 모든 유형이있는 테이블을 찾을 수 있습니다 여기.

PHP

이미 있습니다 전체 스레드 이것에 대해!

루비

내가 루비에서 찾을 수있는 유일한 것들은 꽤 오래되었고 루시스트가 많지 않습니다. 나는 그것이 얼마나 정확한지 잘 모르겠습니다.

기록을 위해 Ruby는 UTF8을 지원하지만 멀티 바이트는 지원하지 않습니다. 내부적으로, 그것은 일반적으로 줄이 바이트 벡터라고 가정하지만, 일반적으로 일을 작동시키는 데 사용할 수있는 라이브러리와 트릭이 있습니다.

그것을 발견했습니다 여기.

루비 1.9

루비 1.9는 인코딩을 문자열에 첨부합니다. 이진 문자열은 인코딩 "ascii-8bit"을 사용합니다. 기본 인코딩은 일반적으로 모든 최신 시스템에서 UTF-8이지만 모든 타사 라이브러리 기능 이이 인코딩에서 항상 문자열을 반환한다고 가정 할 수는 없습니다. 다른 인코딩을 반환 할 수 있습니다 (예 : 일부 Yaml 파서는 어떤 상황에서는 그렇게합니다). 다른 인코딩의 두 줄을 연결하면 ~할 것 같다 얻으십시오 Encoding::CompatibilityError.

ARC에는 유니 코드 지원이 없습니다. 아직.

Lua

Lua5.3 내장 utf8 도서관,처리하는 UTF-8 인코딩이 있습니다.그것은 당신을 변환하는 시리즈의 코드는 해당 바이트 시퀀스는 다른 방법으로,주위에 얻을 수(길이의 수 코드포인트에서 문자열),반복을 통해 코드포인트에서 문자열을 얻을 바이트의 위치 n번째 코드포인트이다.그것은 또한 제공합니 패턴에 의해 사용되는,패턴 매칭 기능 string 라이브러리,일치하는 것입니다 하나 UTF-8 바이트 시퀀스입니다.

Lua5.3 는 유니코드 점 탈출 시퀀스에서 사용할 수 있는 문자열(예를 들어, "\u{61}""a").그들은 번역 UTF-8 바이트 시퀀스입니다.

Lua 소스 코드를 인코딩에 UTF-8 인코딩에서는 ASCII 문자나 바이트입니다.UTF-16,UTF-32 은 이해하지 못하는 바닐라 Lua 통역입니다.그러나 문자열을 포함할 수 있습니다 인코딩하거나 임의의 이진 데이터이다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top