Как я могу ввести символ U + 200B?

28

Как я могу набрать Unicode-символ U + 200B (символ пробела нулевой ширины) с моей клавиатуры?

Мехпер С. Палавузлар
источник
3
Какую операционную систему вы используете?
Курт Пфайфл
1
@pipitas: Если это зависит от ОС, я бы предпочел Windows.
Мехпер С. Палавузлар
1
Дополнительный вопрос: зачем вам пробел нулевой ширины? Это не поможет для форматирования прерванных комментариев, тогда вам придется использовать пробел.
Джои
@Johannes: потому что я не смог найти ответ на свой вопрос о Meta: meta.stackexchange.com/questions/54990/… и meta.stackexchange.com/questions/54990/… . Не могли бы вы объяснить, как я могу использовать пространство для волос?
Мехпер С. Палавузлар
Ах, хорошо, тогда другая проблема. Я думал, что вы пытаетесь что-то вроде meta.stackexchange.com/questions/45424, где ZWS не работает (см. Мои тестовые комментарии ниже вопроса). Также вы разместили одну и ту же ссылку дважды.
Джои

Ответы:

19

При использовании последних версий Chrome / Chromium вы можете использовать его консоль для копирования символа в буфер обмена:

copy("\u200B")         // works for BMP characters only (U+0000 to U+FFFF)
copy("\u{200B}")       // works for all characters (U+0000 to U+10FFFF)

copy(String.fromCodePoint(0x200B))
Катя Михаликова
источник
15

Сначала преобразуйте гекс 200B в десятичное 8203

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

Alt+8203

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

Примечание: я проверил это со шрифтом Arial Unicode MS , и он работал как чемпион.

Goyuix
источник
1
Спасибо за ваш ответ, но как я могу это сделать, например, внутри этого самого поля для комментариев?
Мехпер С. Палавузлар
11
Это вставляет U + 2642 здесь. В RichEdit это работает (как и при использовании 08203). Что касается того, почему для U + 2642: 8203 мод 256 равен 11, что в кодировке OEM было символьным кодом глифа ♂ (который теперь U + 2642). Это согласуется с тем, что я наблюдал ранее: использование Alt + foo обрабатывает код по-разному, в зависимости от префикса. Если нет 0в начале кода, то он интерпретируется в OEM-кодировке, в противном случае это устаревшая кодировка системы. В обоих случаях Unicode участвует только в преобразовании результата в символ.
Джои
1
Очевидно, что это различается между приложениями и элементами управления, но не осмысленно и предсказуемо, поэтому в качестве общего решения все же это не совсем правильно.
Джои
1
Кстати, браузеры не должны иметь проблем с выбором шрифта для конкретного символа, которого нет в указанном шрифте. Также Arial делает содержит глиф U + 200B. В любом случае, вы не должны видеть нулевые глифы (блоки или U + FFFD) в недавно выпущенной системе.
Джои
3
Как вы печатаете этот символ на устройстве, на котором нет цифровой клавиатуры, например на ноутбуках?
Борек Бернард
7

Следуйте инструкциям в Википедии . К сожалению, вам нужно сначала установить ключ реестра.

После выполнения этой формальности просто удерживайте Altи нажимайте + 2 0 0 B, набирая +цифры и цифры на цифровой клавиатуре, и буквы обычно.

zildjohn01
источник
3
Ввод буквы B в конце на моем терминале Windows XP, кажется, прерывает escape-последовательность, и в текстовое поле фактически не отправляется символ.
Goyuix
@Goyuix: Консольные окна - совершенно другое чудовище ... в большинстве случаев вы не можете вводить символы с помощью Alt + foo.
Джои
7

Alt + 0129

Это вставляет символ нулевой ширины.

Rudey
источник
7
0129- hex 0x81 - не то же самое, что U + 200B и не символ нулевой ширины. В кодировке символов Windows Cp1252 и ISO-8859-1 это «не символ» - в кодовой точке x81 ничего нет, поэтому да, он отображается как ничто, но это не граница слова, поэтому это не такой же, как пространство нулевой ширины. В Unicode кодовая точка 0x81 находится в диапазоне зарезервированных управляющих символов «C1». Если вы используете кодировку Unicode / UTF-8, вам следует избегать символов в диапазоне от 0x80 до 0x9f (128-159). Даже в латинице-1 этот диапазон зарезервирован
Стивен П.
2

Вы можете перейти на этот сайт: Символы - это обеспечивает легкий доступ ко многим специальным символам и символам. Внизу страницы вы видите кнопку для символа «Zero Width Space», просто нажмите на эту кнопку, чтобы скопировать символ «Zero Width Space» в буфер обмена.

harryngh
источник
Это было намного проще, чем другие ответы, которые я пробовал! Спасибо.
Райан
0

Чтобы набрать это на ноутбуке без отдельной цифровой клавиатуры, вам нужно включить numlock, который будет отличаться в зависимости от производителя вашего компьютера. Числа 0-9 тогда MJKLUIO789, соответственно. На большинстве ноутбуков эти клавиши помечены как таковые. Но даже если это не так, это все равно должно работать.

trlkly
источник
-3

Я не уверен на 100%, но я думаю, что это может быть Alt + 127

RobertPitt
источник
Используя Num Lock, я мог бы добавить!
Роберт Питт
хм, хорошо, еще один, который я могу подумать, если это версия Unicode с нами 200 или 200B, поэтому попробуйте ALT + 200 или ALT + 200B
RobertPitt
Когда я делаю это, появляется этот персонаж:
Мехпер С. Палавузлар
Alt + 200 =
Мехпер С. Палавузлар
Этот ответ неверен - ASCII 127 обычно является символом DEL, а не символом юникода с пробелом нулевой ширины.
Goyuix