질문 : 값으로 유니 코드 확장 기호의 올바른 순서는 무엇입니까?유니 코드 char 값
유니 코드 문자 목록을 정렬하는 데 Excel을 사용하면 Excel "= code()"를 사용하여 그 값으로 정렬 할 때와 다른 순서가됩니다. 그 목적은 문자 사이의 거리를 측정하고자하는 것입니다 (예 : a-b = 1 및 & - % = 1; Excel 정렬 기능으로 정렬 할 때 3 개 안에 정렬 된 두 개의 문자는 134 자리의 값을 갖는 것처럼 보입니다.
또한 일부 문자 기호는 Excel에서 비어 있고 여러 기호는 '찾기'로 두 번 발견되며 두 개의 다른 기호이며 한 쌍은 전혀 없습니다. 이 '특별'문자의 세부 사항을 설명하십시오.
http://en.wikipedia.org/wiki/List_of_Unicode_characters
샘플 코드 :
int charDist = abs(alpha[index] - code[0]);
EDIT : 는 C의 UNICODE 값을 알아낼 ++ VS2008는 I 코드 1
에 대한 코드 (255)에 코드 (1)로부터 비교 각 코드를 실행cout << mem << " code " << key << " is " << abs(key[0] - '') << " from " << endl;
대괄호 안에는이 웹 사이트에 글꼴이 없지만 명령 창이 나타나지 않는 검은 색 행복한 얼굴이 있습니다. vs2008에서 보입니다. 하프 포스트처럼 | T. Excel의 오른쪽 절반은 공백으로 남겨 둡니다.
다음 Unicodes는 127 번호 1의 표준 라이브러리 및 #INCLUDE 9, 10, 13, 26, 34, 44,그리고, 숫자 '거리'를 VS2008 ++ C에 처리되지
정확하지만 128에서 거리는 여분을 건너 뛰고 어떤 이유로 더 멀리 떨어져 있습니다. 그러면 128에서 255까지 거리가 바뀌고 가까워집니다. 255는 1 '에서 2 분
이러한 것들이 더 논리적으로 뒤따를 경우 딸꾹질이나 건너 뛰기 및 뒤집기가없고 단지 1에서 255까지만 가능하고 255-1 = 254이지만 이봐, 내가 아는 것은 좋을 것이다.
EDIT2 : UNIFORMAT의 데이터 정렬은 128에서 255까지이며 1에서 127까지이며 쓰레기 9, 10, 13, 26, 34, 44에 대한 6 건너 뛰기로 1에서 255까지입니다 . 그것은 직관적이지 않았습니다. 새로운 순서 128-> 255,1-> 127에서 127에서 128 사이의 이상한 건너 뛰기가 더 명확합니다. 0이 없기 때문에 255와 1 사이의 값이 누락되었습니다.
해결 방법 : 내 자신의 해시 테이블 만들기 UNIFORMAT 값을 제공하기 위해 C++ std 라이브러리 나 vs2008에 의존하지 않습니다. UNIFORMAT의 몇몇 특정 서브 세트 외부에서 char 거리를 측정하기에는 올바르지 않기 때문입니다.
달성하려는 작업 ? 이것은 내게 [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)처럼 보입니다 – sehe
임의의 유니 코드 데이터를 정렬하는 것은 대단히 복잡한 문제입니다. 일부 언어 (예 : 스페인어, * ch * 및 * ll *)의 정렬 규칙이 정렬 목적으로 하나의 문자로 취급되므로 ASCII 문자의 숫자 값을 정렬하는 것만 큼 간단하지 않습니다. 정말로 해결하려는 문제는 무엇입니까? –
문자 집합에서 코드 포인트의 순서 지정은 편집 거리가 아닌 [데이터 정렬] (http://en.wikipedia.org/wiki/Collation)이며 [Hamming] (http : // en. wikipedia.org/wiki/Hamming_distance) 또는 [Levenshtein] (http://en.wikipedia.org/wiki/Levenshtein_distance) 예 : – sehe