Що означає ?
Він ставить те саме запитання; додаткова ширина — типографічна.
? належить до повноширинних знаків, які використовують у китайських, японських і корейських текстах, а ? — це вузька форма ASCII. Різниця стосується відстані, а не нагальності.
Повна ширина — це ціль компонування, а не точний розмір: видиму форму й ширину визначають шрифт і система відтворення тексту, тому знак не обов’язково виглядає рівно вдвічі ширшим. Нормалізація сумісності Unicode може перетворити ? на ?, зберігши функцію запитання, але втративши різницю ширини.
Звідки походить повноширинна форма?
Повноширинна форма походить з епохи комп’ютерів зі змішаною шириною символів.
У старих східноазійських кодуваннях ідеограми часто займали два байти, а ASCII — один. Системам були потрібні парні повноширинні й половинноширинні форми, щоб переносити текст між такими макетами без зміни старих даних.
Ця історія комп’ютерних систем відрізняється від історії пунктуації в японському письмі. У давніших японських текстах було мало пунктуації або не було зовсім; знаки західного стилю згодом з’явилися в підручниках і сучасній художній літературі та поширилися ширше. Японська граматика вже могла позначати запитання часткою か в кінці речення або іншими словами. Пунктуація позначає речення, а не створює запитання.
Нейтральний розділовий знак. У текстах CJK повноширинна форма вказує на правила інтервалів, а не на більшу нагальність.
Ширший знак не робить запитання наполегливішим.
Не плутайте з
1Запитання користувачів
2Чому мій ? перетворився на ?
Таке може статися, коли програма застосовує нормалізацію сумісності або перетворює повноширинну форму на половинноширинну. Речення все ще є запитанням, але форми символів уже не однакові.
Чому ? не виглядає вдвічі ширшим?
Він не зобов’язаний так виглядати. Повна ширина описує поведінку ширини та сумісність у східноазійському тексті; видиму ширину визначають шрифт і система компонування. Навіть якщо ? здається вузьким, це все одно повноширинний символ.
Як набрати ?
?\FF1FКоди й кодуванняКодових точок: 1
Видимий символ може містити кілька кодових точок. JS .length рахує одиниці UTF-16, а UTF-8 — байти.

