Вопрос по ascii, unicode – Что такое код символа ASCII для '-'?

19

Я работаю над расшифровкой текста. Я пытаюсь найти код символа для символ, чтобы не быть принятым за-, в ASCII. Я пытался безуспешно. Кто-нибудь знает, как его конвертировать?

@ raina77ow: я пытаюсь найти номер этого символа в таблице Ascii Adam Sh
Что ты имеешь в виду под «расшифровывать этот символ»? Какая кодировка используется в исходном тексте и какая кодировка должна использоваться в результате? raina77ow
Его там нет; следовательно, его код зависит от того, какая кодировка используется. Например, в латинице-1 текстыmdash обозначен номером 151. raina77ow

Ваш Ответ

4   ответа
28

Em dash)

Когда фактическая тире em недоступна, как в наборе символов ASCII, используется двойной ("-") или тройной дефис-минус ("---"). В Юникоде символом тире является U + 2014 (десятичное 8212).

Em тире не является частью набора символов ASCII.

Так, когда я делаю:char check = s.charAt(0), когда s =, что я получу? Вы говорите, что если я сделаюint check = s.charAt(0) Я получу 8212? Adam Sh
@ AdamSh Это зависит от того, что вы используете для декодирования. Вы не опубликовали никакого кода, поэтому трудно сказать. Обычно, когда декодер сталкивается с чем-то, что он не может декодировать, он заменяет его знаком вопроса. vcsjones
Вам следует либо сгенерировать исключение, либо начать использовать большие целые числа и вернуть 8212. Li0liQ
троки @JavaScript являются Unicode (то есть они не ограничены ASCII), поэтому, если вы выполните s.charAt (0), то вы получите черту em, которая будет равнаs = '\u2014' thomasrutter
9

известен как Em Dash. Это код символа\u2014. Это не символ ASCII, поэтому вы не можете декодировать его с помощью набора символов ASCII, потому что его нет в таблице символов ASCII. Возможно, вы захотите использовать вместо него UTF8.

троки @JavaScript поддерживают Unicode, но используют UCS-2, а не UTF-8, для внутреннего использования. В любом случае, вам не нужно знать кодировку, чтобы представить ее, так как вы можете проверить это по кодовой точке Unicode в форме\u2014 как вы сказали thomasrutter
1

не является частью набора ASCII.

Но если вы хотите конвертировать его в другой формат (например, U + hex), вы можете использоватьэт онлайн инструмент. Поместите своего персонажа в первое зеленое поле и нажмите «Преобразовать» (над полем)

далее вы найдете несколько различных кодов, включая U + шестнадцатеричный:

U+2014

Не стесняйтесь редактировать этот ответ, если ссылка не работает или оставьте комментарий, чтобы я мог найти замену.

2

но только в Unicode, обычно кодируется UTF-8.

В UTF-8 символы кодируются 2- или 3-байтовыми последовательностями (или иногда более длинными), где ни один из двух или трех байтов не является допустимым кодом ASCII, где все они находятся вне диапазона ASCII от 0 до 127 .

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

Похожие вопросы