2012-07-19 5 views
-2

"1055912799"ASCII 문자열이 "1055912799"유니 코드 문자열과 같습니까?이 ASCII/유니 코드 문자열은 동일합니까?

+1

UTF-8을 의미 할 경우 예, 바이트로 비교할 수 있습니다. UTF-16을 의미하는 경우 바이트 비교를위한 바이트가되지는 않지만 사용하는 언어에 따라 문자열 비교가 동일해야합니다. –

+2

질문이 의미가 없습니다. "유니 코드 문자열"이라고 말할 수는 없습니다. 당신은 당신의 문자열이 어떻게 암호화되어 있는지 말해야합니다. –

답변

0

예, 유니 코드의 0에서 9까지의 숫자는 Ascii에서와 같은 문자로 정의됩니다. 보다 일반적으로 모든 인쇄 가능한 Ascii 문자는 유니 코드로 코드화되어 있습니다 (그리고 같은 코드 번호로).

바이트의 시퀀스로 내부 표현이 같은지 여부는 문자 인코딩에 따라 다릅니다. Unicode 용 UTF-8 인코딩은 Ascii 문자가 Ascii 용으로 현재 사용되는 유일한 인코딩에서와 같은 코드화 된 표현을 갖도록 설계되었습니다 (각 Ascii 코드 번호를 8 비트 바이트로 매핑하며 첫 번째 비트는 제로).

Ascii 범위의 문자에 대한 UTF-16로 인코딩 된 표현은 간단한 매핑이 있다는 의미에서 Ascii 인코딩과 "동등"하다고 말할 수 있습니다. UTF-16에서 각 Ascii 문자는 2 바이트로 나타나며, 하나의 0 바이트와 Ascii 번호를 포함하는 1 바이트. (이 바이트의 순서는 UTF-16의 엔디안 방식에 따라 다릅니다.)하지만 이러한 "동등성"개념은 일반적으로 사용되지 않으며 특별히 유용하지 않습니다.

+0

나는 내 질문에 정교하게 추측한다 ... 나는 Ascii 문자열과 십진수를 유니 코드 문자열 (UTF-16으로 가정)로 변환하는 함수 두 개를 가지고있다. 10 진수에서 ascii로 변환기를 사용하면 출력이 "1055912799"가됩니다. 유니 코드 변환기에 십진수를 사용하여 동일한 출력을 얻을 수 있습니까? – user1224478

+0

"십진수를 변환"하는 것이 무슨 뜻인지는 추측 할 수 없지만 확실하게 Ascii 로의 변환은 UTF-16으로의 변환과 동일한 바이트 시퀀스를 생성하지 않습니다. –

0

ASCII는 유니 코드의 하위 집합이므로 모든 ASCII 문자열은 유니 코드에서 동일 할 것이며 물론 UTF-8로 인코딩한다고 가정합니다. 확실히 UTF-16 또는 UTF-32 인코딩은 상당히 비대해질 것입니다.

+0

아닙니다. ASCII는 UTF-8의 하위 집합이지만 다른 유니 코드 인코딩은 사용할 수 없습니다 (추가 0x00이 삽입되므로 UTF-16 et altri). – dda

+0

@dda는 "물론 UTF-8로 인코딩한다고 가정합니다"라고 말합니다. – corsiKa

관련 문제