Как я могу ввести символ 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 , и он работал как чемпион.


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, набирая +цифры и цифры на цифровой клавиатуре, и буквы обычно.


3
Ввод буквы B в конце на моем терминале Windows XP, кажется, прерывает escape-последовательность, и в текстовое поле фактически не отправляется символ.
Goyuix

@Goyuix: Консольные окна - совершенно другое чудовище ... в большинстве случаев вы не можете вводить символы с помощью Alt + foo.
Джои

7

Alt + 0129

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


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» в буфер обмена.


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

0

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


-3

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


Используя Num Lock, я мог бы добавить!
Роберт Питт

хм, хорошо, еще один, который я могу подумать, если это версия Unicode с нами 200 или 200B, поэтому попробуйте ALT + 200 или ALT + 200B
RobertPitt

Когда я делаю это, появляется этот персонаж:
Мехпер С. Палавузлар


Этот ответ неверен - ASCII 127 обычно является символом DEL, а не символом юникода с пробелом нулевой ширины.
Goyuix
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.