2014-12-04 2 views
2

유니 코드 정렬의 이론은 무엇입니까? 어떻게 작동하는지 이해하지만 they이이 표준에 따라 데이터 정렬 정렬을 결정한 이유를 알지 못합니다.유니 코드 정렬 정렬에 대한 이론은 무엇입니까

당신이 비교하는 두 개의 문자열, 예를 들어 ucol_strcolliter()를 사용하여 때 보인다 : 다음

ucol_strcollIter(collator, &stringIter1, &stringIter2, &Status) 

을, 두 문자열이 내가 말하십시오 "보조"에서

string string1 = "hello" 
string string2 = "héllo" 

데이터 정렬 강도, string1은 string2보다 먼저 정렬되어야합니다. 여기서 string1과 string2는 2 차 강도에서 비교됩니다.

<1 hello 
<2 héllo 

하지만

당신은 같은 공간, 후행 한 경우 :

string string1 = "hello " 
string string2 = "héllo " 

다음 악센트 안녕하세요 (문자열 2가) 문자열 1 앞에 배치됩니다. 그리고, 둘 다 그들의 1 차적인 무게에 비교됩니다.

<1 héllo 
<1 hello 

유니 코드 데이터 정렬 알고리즘은 후행 공백을 고려 하는가?

이유가 있습니까 이유가입니까?

답변

0

아마도 가장 좋은 TP는 this 일 것입니다.

ICU Collation Demo으로 다양한 옵션 조합을 시도 할 수 있습니다. ("alternate = shifted"try 시도)

+1

TP는 무엇을 의미합니까? – Pacerier

0

공백 문자의 기본 데이터 정렬 가중치가 0x0209이므로 (참조 Default Unicode Collation Element Table, 검색 # SPACE)

뒤에 오는 공백은 문자열의 일부입니다.

+0

네, 맞습니다. ICU 데이터 정렬이 사전 식 순서를 사용하지 않는 이유는 무엇인지 알아 내려고합니다. 사전 편집 순서를 사용하면 여분의 공백이 차이를 만들어서는 안됩니다. 그러나 ICU는 전체 문자열을 대신 사용하여 가중치에 큰 영향을주는 정렬 키를 만듭니다. 이것에 TP (Technical Paper)가 있습니까? – user3404884

+0

사전 편집 순서가 무슨 뜻인지 잘 모르겠습니다. – Random832

+0

즉, 각 문자는 순서대로 비교됩니다. H -> H, e -> é, .... 등 – user3404884

관련 문제