양방향 텍스트

Bidirectional text

양방향 텍스트에는 오른쪽에서 왼쪽으로(RTL)와 왼쪽에서 오른쪽으로(LTR)라는 두 가지 텍스트 방향이 포함됩니다.일반적으로 다른 유형의 알파벳을 포함하는 텍스트가 포함되지만 각 행에서 텍스트 방향을 변경하는 boustrophedon을 참조할 수도 있습니다.

많은 컴퓨터 프로그램이 양방향 텍스트를 올바르게 표시하지 못합니다.예를 들어, 히브리어 이름 사라(Sarah)의 철자는 sin(가장 오른쪽에 나타남), rech(가장 왼쪽에 나타남)이다.

양방향 스크립트 지원

쌍방향 스크립트는 쌍방향 텍스트를 올바르게 표시하는 컴퓨터 시스템의 기능입니다.이 용어는 종종 "BiDi" 또는 "bidi"로 단축됩니다.

초기 컴퓨터 설치는 단일 쓰기 시스템만을 지원하도록 설계되었으며, 일반적으로 라틴 알파벳을 기반으로 한 왼쪽에서 오른쪽으로 스크립트에만 사용할 수 있습니다.새로운 문자 집합과 문자 인코딩을 추가하면 다른 많은 왼쪽에서 오른쪽으로의 스크립트를 지원할 수 있었지만 아랍어나 히브리어 의 오른쪽에서 왼쪽으로의 스크립트를 쉽게 지원하지 않았기 때문에 이 둘을 혼합하는 것은 실용적이지 않았습니다.오른쪽에서 왼쪽으로의 스크립트는 ISO/IEC 8859-6ISO/IEC 8859-8같은 인코딩을 통해 도입되어 문자(보통)를 쓰기 및 읽기 순서로 저장합니다.왼쪽에서 오른쪽으로 화면표시 순서를 바꿀 수 있지만, 이렇게 하면 왼쪽에서 오른쪽으로 스크립트를 올바르게 표시할 수 없게 됩니다.쌍방향 스크립트가 지원되므로 쓰기 방향에 관계없이 같은 페이지에서 다른 스크립트의 문자를 혼재시킬 수 있습니다.

특히 Unicode 표준은 완전한 BiDi 지원을 위한 기반을 제공하며 왼쪽에서 오른쪽으로 스크립트와 오른쪽에서 왼쪽으로 스크립트의 혼합 인코딩 및 표시 방법에 대한 자세한 규칙을 제공합니다.

Unicode bidi 지원

유니코드 표준에서는 문자를 '논리적으로' 정렬할 것을 요구하고 있습니다.즉, 문자가 표시되는 순서인 '시각적으로'가 아니라, 그 순서를 해석하도록 되어 있습니다.이러한 구별은 bidi의 전환 시점에서는 시각적 표시가 '논리적인' 표시가 되지 않기 때문에 bidi 지원과 관련이 있습니다.따라서 Unicode는 bidi 지원을 제공하기 위해 문자의 논리 시퀀스를 올바른 시각적 표현으로 변환하는 방법에 대한 알고리즘을 규정합니다.이를 위해 Unicode 인코딩 표준은 모든 문자를 'strong', 'weak', 'neutral' 및 'explicit formating'[1]의 4가지 유형 중 하나로 나눕니다.

강한 캐릭터

강한 성격은 확실한 방향을 가진 성격이다.이러한 유형의 문자에는 대부분의 알파벳 문자, 음절 문자, 한어체 문자, 유럽어 또는 아랍어 이외의 숫자, 이러한 스크립트에만 고유한 구두점 문자 등이 있습니다.

약한 문자

약한 성격은 방향성이 애매한 성격이다.이러한 유형의 문자에는 유럽 숫자, 동부 아랍어-인도 숫자, 산술 기호 및 통화 기호가 포함됩니다.

중립 문자

중립 문자는 컨텍스트 없이 방향을 결정할 수 없습니다.예를 들어 문단 구분 기호, 탭 및 기타 대부분의 공백 문자가 있습니다.콜론, 콤마, 풀스톱, 브레이크 없음 공간 등 많은 스크립트에 공통적인 구두점 기호도 이 범주에 속합니다.

명시적 포맷

명시적 포맷 문자는 "방향 포맷 문자"라고도 하며 알고리즘이 기본 동작을 수정하도록 지시하는 특수한 유니코드 시퀀스입니다.이러한 문자는 "마크", "임베딩", "격리" 및 "오버라이드"로 세분됩니다.이러한 효과는 단락 구분자 또는 "팝" 문자가 나타날 때까지 계속됩니다.

흔적들

"weak" 문자 뒤에 다른 "weak" 문자가 이어지는 경우 알고리즘은 첫 번째 인접한 "strong" 문자를 조사합니다.이로 인해 의도하지 않은 디스플레이 오류가 발생할 수 있습니다.이러한 에러는, 「의사 스트롱」문자에 의해서 수정 또는 방지됩니다.이러한 유니코드 제어 문자를 마크라고 합니다.마크(U+200E Left-To-Right Mark(LRM; 왼쪽에서 오른쪽으로 마크) 또는 U+200F Right-To-Left Mark(RLM; 오른쪽에서 왼쪽으로 마크))를 삽입하여 둘러싸인 약한 문자가 쓰기 방향을 상속하도록 합니다.

를 들어 아랍어(RTL) 구절에 U+2122 영문명 브랜드(LTR)의 TRADE MARK SIGN을 올바르게 표시하기 위해 기호 뒤에 LTR 마크가 붙어 있지 않은 경우(예: "Wikipedia RTR") 상표 기호 뒤에 LRM 마크를 삽입합니다.LRM 마크가 추가되지 않으면 약한 문자 ™가 강한 LTR 문자와 강한 RTL 문자와 인접하게 됩니다.따라서 RTL 컨텍스트에서는 RTL로 간주되어 잘못된 순서로 표시됩니다(예: "Wikipedia™").

내장

"포함" 방향 포맷 문자는 명시적 포맷의 고전적인 유니코드 방식이며 유니코드 6.3에서는 "분리"를 선호하지 않습니다.「포함」은, 텍스트가 방향적으로 구별되는 것으로 취급되는 것을 나타냅니다.포함 서식 문자의 범위 내의 텍스트는 주변 텍스트와 독립적이지 않습니다.또, 내장내의 문자는, 외부에서의 문자의 순서에 영향을 줄 수 있습니다.Unicode 6.3은 방향성 임베딩이 일반적으로 주변 환경에 너무 강한 영향을 미치기 때문에 불필요하게 사용이 어렵다는 것을 인식했습니다.

분리하다

"isolate" 방향 포맷 문자는 텍스트가 주변으로부터 방향적으로 격리된 것으로 처리되어야 함을 나타냅니다.Unicode 6.3 에서는, 타겟 플랫폼이 서포트되고 있는 것이 판명되면, 새로운 문서에서 권장되고 있는 포맷 문자입니다.이러한 포맷 문자는 방향성 임베딩이 일반적으로 주변 환경에 너무 강한 영향을 미치기 때문에 불필요하게 사용하기 어렵다는 것이 명백해진 후에 도입되었습니다.기존 '포함' 방향 형식 문자와 달리 'isolate' 문자는 범위를 벗어난 텍스트의 순서에는 영향을 미치지 않습니다.절연체를 중첩할 수 있으며 내장 및 재정의 내에 배치할 수 있습니다.

오버라이드

"덮어쓰기" 방향 포맷 문자는 부품 번호(예: 혼합된 영어, 숫자 및 히브리 문자로 구성된 부품 번호를 오른쪽에서 왼쪽으로 쓰도록 강제하는 등)와 같은 특수한 경우를 허용하며, 가능한 한 피하는 것이 좋습니다.다른 방향 포맷 문자의 경우와 마찬가지로 "덮어쓰기"는 다른 문자의 내부에 중첩될 수 있으며 임베딩 및 분리할 수 있습니다.

팝스

"팝" 방향 포맷 문자는 가장 최근의 "포함", "덮어쓰기" 또는 "격리" 범위를 종료합니다.

실행

알고리즘에서는 연결된 강한 문자의 각 시퀀스를 "실행"이라고 합니다.같은 방향의 두 "강한" 문자 사이에 있는 "약한" 문자는 방향을 상속합니다.쓰기 방향이 다른 두 "강한" 문자 사이에 위치한 "약한" 문자는 메인 컨텍스트의 쓰기 방향을 상속합니다(LTR 문서에서는 해당 문자가 LTR이 되고 RTL 문서에서는 RTL이 됩니다).

가능한 BiDi 문자 유형 표

양방향 문자 유형(Bidi_Class Unicode 문자 속성)[1]
유형[2] 묘사 방향성 일반적인 범위 Bidi_Control 문자[3]
L 왼쪽에서 오른쪽으로 강한. L-to-R 대부분의 알파벳 및 음절 문자, 한자, 비유럽어 또는 비아랍어 숫자, LRM 문자... U+200E 왼쪽에서 오른쪽으로 마크(LRM)
R 오른쪽에서 왼쪽으로 강한. R-to-L Adlam, 히브리어, Mandaic, Mende Kikakui, N'Ko, 사마리아어, Kharoshthi, Nabatian과 같은 고대 문자, RLM 문자... U+200F 오른쪽에서 왼쪽으로 마크(RLM)
AL 아랍어 문자 강한. R-to-L 아랍어, Hanifi Rohingya, Sogdian, Syriac 및 Thaana 알파벳 및 이들 스크립트에 고유한 구두점, ALM 문자... U+061C 아랍IC 레터 마크(ALM)
EN 유럽 번호 약한 유럽 숫자, 동부 아랍어-인도 숫자, 콥트어 epact 번호...
ES 유럽 구분 기호 약한 플러스 기호, 마이너스 기호...
ET 유럽 번호 터미네이터 약한 기호, 통화 기호...
AN 아랍어 번호 약한 아라비아-인도 숫자, 아라비아 십진수 및 수천 개의 구분 기호, 루미 숫자, 하니피 로힝야 숫자 등...
CS 공통 번호 구분자 약한 콜론, 쉼표, 마침표, 공백 없음, ...
NSM 페이싱하지 않는 마크 약한 일반 카테고리의 문자는 괄호(Mn, Me)로 마크, 공백 없음 및 마크(Mn, Me)
BN 경계 중립 약한 다른 유형이 명시적으로 지정된 문자 이외의 기본 무시 가능 문자, 비문자, 제어 문자
B 단락 구분 기호 중립 단락 구분자, 적절한 줄 바꿈 기능, 상위 수준의 프로토콜 단락 결정
S 세그먼트 구분자 중립
WS 공백 중립 공간, 그림 공간, 줄 구분 기호, 양식 피드, 일반 구두점 블록 공간(Unicode 공백 목록보다 작은 세트)
기타 뉴트럴 중립 오브젝트 치환 문자를 포함한 기타 모든 문자
LRE 왼쪽에서 오른쪽으로 삽입 명시적 L-to-R LRE 문자만 U+202A 왼쪽에서 오른쪽으로 삽입(LRE)
LRO 왼쪽에서 오른쪽으로 덮어쓰기 명시적 L-to-R LRO 문자만 U+202D 왼쪽에서 오른쪽으로 오버라이드(LRO)
RLE 오른쪽에서 왼쪽으로 삽입 명시적 R-to-L RLE 문자만 U+202B 오른쪽에서 왼쪽으로 삽입(RLE)
RLO 오른쪽에서 왼쪽으로 덮어쓰기 명시적 R-to-L RLO 문자만 U+202E 오른쪽에서 왼쪽으로 오버라이드(RLO)
PDF 팝 방향 형식 명시적 PDF 문자만 U+202C POP 방향 포맷(PDF)
LRI 왼쪽에서 오른쪽으로 분리 명시적 L-to-R LRI 문자만 U+2066 왼쪽에서 오른쪽으로 격리(LRI)
RLI 오른쪽에서 왼쪽으로 분리 명시적 R-to-L RLI 문자만 U+2067 오른쪽에서 왼쪽으로 격리(RLI)
FSI 첫 번째 강력한 격리 명시적 FSI 문자만 U+2068 최초의 강력한 격리(FSI)
PDI 팝 방향 분리 명시적 PDI 문자만 U+2069 POP 방향 절연체(PDI)
메모들
1. 유니코드 버전12.0의 경우 ^유니코드 양방향 알고리즘(UAX#9)
2.^ 문자 속성에 대해 가능한 양방향 문자 유형: Bidi_Class 또는 '유형'
3.^ Bidi_Control 문자:12개의 Bidi_Control 포맷 문자가 정의되어 있습니다.그것들은 눈에 보이지 않고 방향성 이외에는 효과가 없다.이들 중 9개는 알고리즘에 의해 사용되는 고유한 우선 BiDi 유형을 가집니다.이들의 유형은 약자이기도 하다(예: 캐릭터 'LRE'에는 BiDi 유형 'LRE'가 있다.

보안.

유니코드 양방향 문자는 트로이 목마 소스 [2]취약성에 사용됩니다.

Visual Studio Code는 2021년 [3]10월에 출시된 1.62 버전 이후 BiDi 컨트롤 문자를 강조 표시합니다.

Visual Studio에서는 2021년 [4]12월 14일 버전 17.0.3 이후 BiDi 컨트롤 문자를 강조 표시합니다.

양방향 텍스트를 사용한 스크립트

이집트 상형 문자

이집트 상형문자는 양방향으로 쓰여질 수 있는데, 여기서 사인은 선의 선두를 향하는 뚜렷한 "머리"와 끝을 향하는 "꼬리"를 가지고 있다.

한자 및 기타 CJK 스크립트

한자는 세로 방향뿐만 아니라 세로 방향(위에서 아래로, 오른쪽에서 왼쪽으로)으로 쓸 수 있지만, 개별 문자의 방향은 변경되지 않습니다.이는 중국의 관광버스에서 흔히 볼 수 있는 것으로, 회사명은 일반적으로 차량의 전면에서 후면으로, 즉 버스 우측에서 좌측으로, 버스 좌측에서 우측으로 운행됩니다.차량 우측의 영문 텍스트도 역순으로 표기되는 경우가 꽤 많습니다.(아래 투어 버스 및 우체국 사진을 참조하십시오.)

마찬가지로, 동일한 사각형 문자로 구성된 다른 CJK 문자들, 예를 들어 일본어 문자 체계와 한국어 문자 체계도 왼쪽에서 오른쪽으로, 위에서 아래로 그리고 오른쪽에서 왼쪽으로 쓰는 것이 가장 흔하지만, 어떤 방향으로도 쓸 수 있다.

부스트로페동

부스트로페돈은 고대 그리스 비문과 헝가리의 에서 볼 수 있는 글씨체이다.이 쓰기 방법은 각 연속된 행에서 방향을 바꿔 보통 개별 문자를 반전시킵니다.

문형

달꼴은 시각장애인을 위한 촉각문자로 발명된 라틴 문자를 양각한 이다.처음에 텍스트는 행의 끝에서 방향을 변경(문자 방향은 변경되지 않음)했습니다.특수 엠보싱된 선이 줄의 끝과 다음 [5]줄의 시작을 연결했다.1990년경, 그것은 왼쪽에서 오른쪽으로 바뀌었다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "UAX #9: Unicode Bi-directional Algorithm". Unicode.org. 2018-05-09. Retrieved 2018-06-26.
  2. ^ "Trojan Source Attacks". trojansource.codes. Retrieved 17 January 2022.
  3. ^ "Visual Studio Code October 2021". code.visualstudio.com. Retrieved 11 November 2021.
  4. ^ "Visual Studio 2022 version 17.0 Release Notes". docs.microsoft.com. Retrieved 17 January 2022.
  5. ^ 문 타입 for the Blind, 램지어 바이블 컬렉션, 캐스린 A. 미네소타 덜루스 대학교 마틴 도서관입니다

외부 링크