휄로우. 나는 변태적인 질문을 가지고있다. 용서 해주세요 :)양방향 표현이 지정된 유니 코드 문자열을 계산하는 방법은 무엇입니까?
양방향 유니 코드 텍스트를 표시하는 방법을 설명하는 공식 알고리즘이 있습니다. http://www.unicode.org/reports/tr9/tr9-15.html
나는 문제는 문자열이다 라틴어/히브리어 문자뿐만 아니라 숫자, 화이트 공백, 구두점 기호 등
를 포함 (일부 타사 소스에서) 문자열을받을 받은 양식은 이며 이미입니다. 나는. -받은 문자의 순서는 왼쪽에서 오른쪽으로 표시해야합니다.
지금, 제 목표는 표현이 정확히 같은 유니 코드 문자열을 찾는 것입니다. 의미 - 다른 엔터티에 해당 문자열을 전달해야합니다. 그런 다음 공식 알고리즘에 따라이 문자열을 렌더링하고 결과는 동일해야합니다.
다음과 같은 가정 : (렌더링 개체의)
- 기본 텍스트 방향을 RTL이다.
- 텍스트 방향을 명시 적으로 덮어 쓰는 "특수 유니 코드 문자"(예 : RLO, RLE 등)를 삽입하고 싶지 않습니다.
- 몇 가지 해결책이있을 수 있습니다. 그렇다면 가능한 한 문자열의 RTL 모양을 보존하고 싶습니다. 문자열은 대개 히브리어 단어로 구성됩니다. 그 단어들과 그 단어 안에있는 문자들의 정확한 순서를 보존하고 싶습니다. 반면에 다른 문자 시퀀스는 바뀔 수 있습니다.
이 문제를 해결하는 단순한 방법은 전체 문자열을 바꾸는 것입니다 (히브리어 단어를 처리하는 것입니다). 그런 다음 히브리어가 아닌 문자 시퀀스를 바꿉니다. 그러나 실제 표현 규칙이 다소 복잡하기 때문에 항상 정확한 결과를 산출하지는 않습니다.
내가 지금까지 본 포괄적 인 알고리즘은 무차별 강제 점검뿐입니다. 문자열은 동일한 클래스 문자로 나눌 수 있습니다. 이러한 시퀀스는 임의의 순서로 결합 될 수 있으며, 그 중 임의의 시퀀스가 역전 될 수 있습니다. 올바른 결과를 얻기 위해 모든 조합을 검사 할 수 있습니다. 더하기이 기술을 최적화 할 수 있습니다. 예를 들어 히브리어 단어의 순서가 알려져 있으므로 "결합"시퀀스의 여러 조합을 확인해야합니다.
더 좋은 아이디어가 있습니까? 아이디어가 있다면 전체 솔루션 일 필요는 없습니다. 괜찮습니다. 나는 어떤 생각을 주셔서 감사하겠습니다. 미리 감사드립니다.