Как сделать свою собственную строку в javascript, как будто я нажимаю ALT-коды на клавиатуре (UTF-8) - PullRequest
2 голосов
/ 04 января 2012

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

var username = "David Perry" + "/u4589";

Но он просто добавляет / u4589 в конец, что и следовало ожидать, так как это всего лишь строка. То, что я хочу сделать, это преобразовать это в символ Unicode в строке (как, если я набрал ALT 4589 на клавиатуре). Я пытаюсь построить строку в javascript, потому что я хочу проверить свою форму с различными символами и прочим, и я устал от попыток ALT-кодов, чтобы увидеть, какие странные символы есть ... так что я подумал ... я бы перебрал ВСЕ символы Юникода для FUN, заполните мою форму и отправьте ее автоматически ...

Я собирался начать с / u0000 и перейти к / uffff и посмотреть, какие коды нарушают работу моего сайта при их выводе:)

Я знаю, что в JS есть разные функции, но я не могу понять, почему я не могу создать строку символов Юникода. лол.

Если это слишком сложно, не беспокойтесь об этом. Я просто хотел возиться с этим.

Ответы [ 2 ]

7 голосов
/ 04 января 2012

Попробуйте "\u4589" вместо "/u4589":

>>> "/u4589"
"/u4589"
>>> "\u4589"
"䖉"

косая черта (/) - это просто косая черта в строке, однако обратная косая черта (\) - это escape-символ .

5 голосов
/ 04 января 2012

Если вы хотите сгенерировать случайные символы или цикл через диапазон символов, то вы можете использовать String.fromCharCode(), что дает вам символ с номером Unicode, переданным в качестве аргументаНапример, String.fromCharCode(0x4589) или String.fromCharCode(i), где i - переменная с целочисленным значением.

Обе записи \uxxxx и String.fromCharCode() работают только до 0xFFFF, т. е. для символов базовой многоязычной плоскости,Этого вполне может быть достаточно, но если вам нужны не-BMP символы, посмотрите, например, страницу MDN на fromCharCode .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...