인쇄 스타일 (작은 대문자 나 스크립트 등)을 시뮬레이션하기 위해 유니 코드 문자를 사용해서는 안되는 이유는 무엇입니까?


129

유니 코드에는 기본 라틴 알파벳 문자의 활자체 형태의 변형체처럼 보이는 다양한 문자가 포함되어 있으며 마크 업 또는 이와 유사한 방식으로 텍스트를 해당하는 활자체 스타일로 텍스트를 작성할 수 있습니다. 예를 들어, 다음을 시뮬레이션 할 수 있습니다.

  • 작은 모자들:

    ʙᴇʜᴏʟᴅ ᴛʜɪꜱ ꜰᴀɴᴄɪʟy ᴇɴᴄᴏᴅᴇᴅ ᴛᴇxᴛ.

  • 스크립트:

    𝓑𝓮𝓱𝓸𝓵𝓭 𝓽𝓱𝓲𝓼 𝓯𝓪𝓷𝓬𝓲𝓵𝔂 𝓮𝓷𝓬𝓸𝓭𝓮𝓭 𝓽𝓮𝔁𝓽.

  • 블랙 레터 :

    𝕭𝖊𝖍𝖔𝖑𝖉 𝖙𝖍𝖎𝖘 𝖋𝖆𝖓𝖈𝖎𝖑𝖞 𝖊𝖓𝖈𝖔𝖉𝖊𝖉 𝖙𝖊𝖝𝖙.

이는 Stack Exchange (예 : here , herehere )에 대한 관심을 충족 시켰으며 이러한 기술에 대한 비판을 받았습니다. 그러나 내가 그들을 사용할 때 무엇이 ​​잘못 될 수 있습니까?


224
내 휴대폰에서이 글을 읽고 있는데 마지막 두 개의 멋진 텍스트를 볼 수 없습니다.
Scimonster

22
그것은 일부 장치에서 읽을 수 있기 때문에 : i.stack.imgur.com/kM73J.png
크리스 켄트

15
우리 중 일부는 읽을 수있는 글꼴 (및 크기, 색상 및 & C)로 간주되는 웹 페이지를보고 싶어하므로 사용자 CSS 스타일 시트를 사용하여 작성자 스타일을 대체합니다. 세 가지 예제가 내 장치에 표시 되더라도 분명히 표시하려는 것처럼 테두리를 읽을 수만 있습니다. 왜 당신의 예술적 갈망을 독자의 읽기 편이성 위에 놓을 것입니까?
jamesqf

38
흥미로운 사실은 다음과 같습니다. Edge는 후자의 두 샘플에서 텍스트를 찾을 수 없으며 Chrome은 첫 번째 샘플에서 텍스트를 찾을 수 없습니다. (두 브라우저에서 Ctrl + F '를 BEHOLD로 시도하십시오.) Firefox를 확인하지 않았습니다.
Schism

22
@Schism Firefox는 그중 아무것도 찾지 못합니다. Chrome은 아마도 검색하기 전에 NFKC / NFKD 정규화를 사용하는 것처럼 보이며, 이는 스크립트와 블랙 레터 텍스트를 기본 라틴어로 분해합니다. Firefox는 그렇게하지 않는 것 같습니다. Edge .. 뭔가 이상한 일을하고 있습니다.
Bob

답변:


224

일반

이러한 문자는 일반 라틴-알파벳 텍스트를위한 것이 아니라 발음 기호, 키릴-알파벳 텍스트, 수학 기호 (변수를 나타냄) 등으로 사용하기위한 것입니다. 기본 라틴 알파벳으로 텍스트를 인코딩하는 유일한 유니 코드 호환 방법은이 목적으로 주로 사용되는 문자를 사용하는 것입니다 (예 : 기본 라틴 유니 코드 블록에서).

다른 많은 표준과 마찬가지로 유니 코드 위반에 대해 두 번 생각해야합니다. 또한, 유니 코드는 많은 쓰기 시스템, 사용 사례, 그냥 다른 표준과의 호환성을 위해 존재 물건을 구비 완전하게 모든 동기를 이해하는 것은 자신의 과학이다. 간단히 말해, 실제로하고있는 일을 실제로 알지 않는 한, 원격으로 생각조차하지 않은 무언가가 깨질 가능성이 큽니다.

구체적인 예

접근성

인코딩 된 텍스트는 일부 글꼴로만 렌더링되는 것은 아닙니다. 예를 들어 스크린 리더로 해석 할 수도 있습니다. 스크린 리더는 다음을 추측 할 필요가 없습니다.

𝓽𝓱𝓮

은 변수 𝓽, 𝓱 및 𝓮 의 정관사 나 수학 곱 2 를 의미합니다. 이러한 문자는 이러한 문자의 용도입니다. 따라서 가장 좋은 동작은 문자 그대로 다음과 같은 문자를 나타내는 것입니다.

굵은 스크립트 작은 t, 굵은 스크립트 작은 h, 굵은 스크립트 작은 e

대신 "the"라고 말해서는 안됩니다. 왜냐하면 발음하기 쉬운 단어를 형성하는 기호가있는 수학 텍스트를 제대로 읽지 못하기 때문입니다.

이식성

텍스트가 컴퓨터에서 제대로 렌더링되었다고해서 독자의 텍스트에도 해당되는 것은 아닙니다. 가장 분명한 예는 독자에게 이러한 문자를 지원하는 글꼴이 없거나 대체 글꼴을 지원하지 않는 소프트웨어로 텍스트가 렌더링된다는 것입니다. 분명히, 이것은 점점 덜 일반화되고 있습니다. 난독증과 같은 일부 사람들은 이러한 문자를 지원할 가능성이 적은 특수 글꼴이 필요하다는 점을 명심하십시오.

그러나 독자의 기기가 다른 글꼴 만 사용하더라도 텍스트를 읽기 어렵게 만들 수 있습니다. A의 첫 번째 예 , 이것은 𝓉𝒽ℯ 개의 상이한 폰트 렌더링된다 :

Se FreeSerif 및 STIX로 렌더링

Free Serif는 특수 문자를 사용하여 텍스트를 시뮬레이션 할 때, 즉 연속적인 획으로 필기를 시뮬레이션 할 때 원하는대로 텍스트를 렌더링합니다. 그러나 이러한 문자는 수학 기호로 사용하기 위해 만들어 졌으므로 연결이 의미가 없습니다. 따라서 수학 목적으로 특별히 설계된 STIX 의 렌더링 은 이러한 문자의 사용 방법과 더 일치합니다.

A의 두 번째 예를 들어 , 당신이 또는 어떤 이유로 독자 italicise "сᴜт мy вᴀʀ"을 가정합니다. 좋은 글꼴을 사용하면 4가됩니다 .

сᴜт мy вᴀʀ는 똑바로 기울임 꼴로 렌더링되었습니다.  기울임 꼴은 "cum my bar"로 읽습니다.

그 이유는 작은 대문자가 키릴 문자로 (부분적으로) 시뮬레이트되었으며 키릴 이탤릭체는 때로는 직립 문자매우 다르게 보입니다 . 다시 말하지만, 이것은 올바른 행동입니다.

검색 가능성

A와 첫 번째 예, 당신이 적당한 검색 문자 𝒲 (수학 스크립트로 할 수있는 것이 무엇 고려 W ). 검색에 기본 모드정확한 모드 (대개 대소 문자 구분 )의 두 가지 모드가 있다고 가정하십시오 . 이 문자는 다음과 같아야합니다.

  • 기본 모드에서 w 또는 W 를 검색 할 때 발견됨 – 특수 문자를 검색 필드에 입력하거나 복사하여 붙여 넣기를 원하지 않는 사람들을 위해;

  • 정확한 모드에서 𝒲을 검색 할 때 발견됨 – 수학적 문서에서 해당 변수가 언급 된 곳을 검색하고자하는 사람들을 위해;

  • 위와 유사한 검색을 중단하여 정확한 모드에서 𝓌, w 또는 W 를 검색 할 때는 찾을 수 없습니다 .

그러나이 문자를 사용하여 일반 텍스트를 시뮬레이션 하는 경우 위와 충돌하는 정확한 모드에서 W 또는 𝒲을 검색 할 때이 문자를 찾아야합니다.

A와 두 번째 예를 라틴 문자와 그 반대를 검색 할 때 키릴 문자가 그들이 완전히 다른 것들로, 발견되지 않을 것을 고려하십시오. 그러나 키릴 문자를 사용하여 라틴어 작은 대문자를 시뮬레이션하는 경우 검색 기능을 손상시키지 않으려면이 작업이 필요합니다. 이것은 사람들이 희귀 한 라틴어-알파벳 단어를 검색하면 인기있는 키릴-알파벳 단어의 가짜 작은 대문자에 해당하는 (그리고 그 반대의 경우) 많은 쓸모없는 것들을 찾게 할 것입니다.

정확한 검색 옵션은 알파벳의 다른 목적으로 예약되어 있으므로이 문제를 해결할 수 없습니다.

일반적으로 스타일이 지정된 라틴 텍스트를 시뮬레이트하기 위해 특수 문자를 사용하여 손상되지 않은 검색 옵션을 작성하는 것은 불가능합니다.


1 XKCD가 통일 표준의 실패에 대해  알고 있습니까? 글쎄, 유니 코드는 성공했다.
2  또는 빈 연산자가 관련 규칙에있는 것
3  오늘날 나는이 인코딩이나 그와 호환되는 것을 지원하는 수학 텍스트가 거의 없다는 것을 알고 있습니다. 유니 코드 악용 텍스트는 여전히 주변에있을 수 있습니다.
4  마케도니아 어 또는 세르비아어로 현지화하지 않는 한, 다르지만 여전히 원하지 않는 결과가 나타납니다.


의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
Journeyman Geek

1
세 번째 예는 어떻습니까? 블랙 레터 텍스트가 유니 코드와 일부 글꼴로 존재하는 이유는 무엇입니까?
posfan12

2
@ posfan12 : 스크립트 문자와 같이 고유 한 수학적 알파벳으로 사용됩니다. (여기서 번호 매기기 예제는 문제의 글 머리 기호와 관련이 없습니다.)
Wrzlprmft

3
이탤릭체 때 다른 문장이되는 올바른 문장을 찾기 ... (두 말, 인간의 라틴어 기반의 독자들에 의해 해석) : 당신의 작은 공인 회계사의 예는 퍼즐 / competitoin 제안
하겐 폰 Eitzen

67

무엇이 잘못 될 수 있습니까? 글쎄, 나는 이것을 본다 :

여기에 이미지 설명을 입력하십시오

Windows 7의 Firefox 50.1.0에서

문제 글리프없는 휴대 기기,이 경우에는, 사용자가 소정의 이미지에 도시 된 상기 인 크리스 켄트주석 I가 잘려에서 조정할 한 일본어 :

여기에 이미지 설명을 입력하십시오

그리고 사용자 oals 다른 예를 친절하게 기증했습니다 .

여기에 이미지 설명을 입력하십시오



7
@Lilienthal 업데이트를 확인하거나 설치하지 않고 몇 년을 지 났는지 감명 받았습니다. 내 말은, 나는 여전히 일부 장치에서 Firefox 3.5 기반의 것을 사용하고 있지만 문제에 대한 선택의 여지가 정확히 없습니다 (장치가 너무 좋지만 사용할 수있는 최신 브라우저는 없습니다)
mtraceur

16
@Lilienthal 2020 년에 Firefox 주요 버전 번호에는 64 비트 번호가 필요할 수 있습니다. 그 직후 버전 번호는 실제 프로그램보다 더 많은 공간을 차지합니다. 시장 점유율을 되찾기 위해 Chrome 버전 번호를 저장하려면 행성 전체가 필요합니다.
Andrew Morton

2
고대 브라우저를 사용하여 자신이 노출하고있는 알려진 보안 취약점이 몇 개나 될지 알고 있습니까?
Zach Lipton

3
@Zach Lipton : 내 우선 순위 목록에서 그 방법을 알고 있습니까? # 1 실제로 사용할 수있는 것이 있습니다. 파이어 폭스 사람들 (그리고 다른 많은 사람들)은 새로운 패러다임을 받아 들였지만, 사용 불가능 성을 통한 보안.
jamesqf

29

XY 문제가 있습니다.

Y와 X는 나머지 텍스트보다 작게 나타납니다.

여기에서 Y와 X는 나머지 텍스트보다 작게 나타납니다. 특정 확대 / 축소 수준에서는 크기가 같지만이 특정 글꼴의 특정 글리프에 문제가있는 것으로 보입니다.


나는 당신이보고있는 것에 대해 세 가지 가능한 설명을 제공 할 수 있습니다 : 1) 나쁜 힌트 . 2) 대체 글꼴은 xy 를 제외한 모든 것에 사용됩니다 . 3) 잘못된 글꼴 디자인 : 작은 대문자는 소문자보다 약간 크게 설계되었으며 (유효한 선택 임) 음성 및 키릴 유니 코드 문자에 사용됩니다. 예를 들어 음성 학적 사용에서 이러한 문자는 적합하지 않습니다. 기본 라틴 문자와 조화를 이루어야합니다. — 어느 쪽이든 : 포인트 1)과 3)은 유니 코드 악용으로 인한 것이 아닙니다. 포인트 2)는 이미 다른 답변에서 해결되었습니다.
Wrzlprmft 2016

12
@Wrzlprmft : 정의에 따르면 유니 코드에는 작은 대문자가 없으므로 유니 코드 남용입니다. 유니 코드의 특징은 발음 알파벳 블록과 라틴 확장 D 블록에서 작은 대문자처럼 보이는 문자입니다. 특히 두 음소 블록이나 라틴 확장 D 블록에는 작은 대문자 X 처럼 보이는 문자가 포함되어 있지 않으므로 X 는 어딘가에서 키릴 문자 블록에서 나온 것 같습니다. 차이는 1, 2 또는 3에 의해 발생하지 않습니다. 다른 알파벳에 속하는 문자로 인해 발생합니다.
slebetman

@ slebetman : 작은 대문자 x 는 단지 소문자 x입니다 (질문에서 문자를 복사하고 직접 검사 할 수 있습니다). 또한 소문자 x 는 음성 문자로도 사용되므로 음성 문자와 조화를 이루어야합니다. 또한 키릴 자모 단어가 라틴어 텍스트에서 눈에 띄지 않게하기 위해 키릴 자모 소문자와 같은 높이를 가져야합니다.
Wrzlprmft

19
"XY problem"에서 lol에 대한 찬성 :)
Andrew Morton

13

라틴 문자와 비슷한 라틴 문자 이외의 문자를 사용하면 스패머, 포르노 애호가 및 텍스트를 검색 할 수없고 색인을 생성 할 수없고 번복 할 수있는 사람을 찾는 사람들을 스패머, 포르노 애호가의 회사에 배치 할 수 있습니다. ( "나는 그것이 안전하다고 결코 말하지 않았다! 나는 그것이 시그마-알파-적분 부호-에피 슬론이라고 말했다! 나를 고소 할 수 없다!")

당신이 그 클럽에 편하다면, 그것을 찾으십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.