16

Странные символы:

ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็ กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้

Вопрос: Почему эти символы выглядят так странно, когда вы смотрите на них в Windows *?

Вот фрагмент из Outlook для вас, счастливчиков, которые не вынуждены использовать Windows:

дрянь

Связанный: Какая кодировка символов используется?

* Windows как в ОС. Приложения, рисующие текст с использованием GTK+ и подобных, не показывают, что что-то из LSD-поездки пошло не так.

2 ответа2

10

Поскольку я, кажется, немного удивился, подумав, что Windows "делает все правильно", я чувствую, что должен опубликовать ответ, чтобы оправдать свою позицию.

В том-то и дело, что у вас есть текст, который говорит операционной системе рендерить безумное количество комбинируемых символов. Проблема в том, что одна операционная система фактически отображает их, а другая - нет, связана с рядом проблем. Одна из этих проблем заключается в том, насколько тщательными были программисты, когда они писали код для их визуализации, а другая - из-за того, что программисты слишком ленивы, чтобы реализовать их должным образом, если вообще вообще.

По сути, все сводится к идее, что письменные языки являются текучими вещами, и что многие символы в определенных языках имеют несколько различных диакритических знаков, которые применяются для изменения произношения символов. Как мы справляемся со всеми этими диакритическими знаками, даем ли мы каждой букве с диакритическим знаком новый символ (что приведет к одному черту из множества новых и почти идентичных символов), или мы создаем набор символов специально для диакритических знаков и сокращаем наш общий алфавит?

Unicode дает нам возможность сделать и то и другое, но при этом программистам, которые должны отображать эти диакритические знаки, приходится иметь дело с тем фактом, что есть некоторые символы, которые на самом деле имеют несколько диакритических знаков, один выше и один ниже, а затем программист имеет задать вопрос только когда они останавливаются. Они могли бы ограничить его до двух и удовлетворить большинство людей, но игнорировать тех, кто хочет или нуждается в трех диакритических знаках, чтобы формально писать на своем родном языке.

Правильно или неправильно Microsoft решила позволить пользователю решать, сколько дополнительных отметок человек хочет использовать. Этот путь требует довольно хорошего программиста и некоторой жесткой рационализации. Я полностью поддерживаю их как в разрешении этого, так и в том, что они делают это хорошо.

С другой стороны, если бы эти персонажи отсутствовали, я бы хотел знать, почему они отсутствовали. Было ли это решение «мы бросаем это на пол после x диакритических знаков», или это было из-за того, что программисты слишком ленивы, чтобы делать это должным образом и потенциально подвергали меня некоторому переполнению буфера с кодом, скрытым в диакритических знаках, который был передан для выполнения по системе?

Простая проблема заключается в том, что, фактически отображая эти символы, я вижу, что система делает именно то, что ей говорят, а не делает то, что считает правильным, или, что еще хуже, делает что-то потенциально опасное.

4

Почему эти символы выглядят так странно, когда вы смотрите на них в Windows *?

Потому что Windows пытается визуализировать большое количество символов, объединяющих Unicode, когда ваш текст содержит их, даже если ни один из реальных сценариев не объединит столько знаков вместе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .