PDA

Просмотр полной версии : Как выглядит "123" в UNICODE?


-=lebed=-
12.10.2009, 09:26
В HEX виде это что?
Мои варианты:

EF BB BF 31 32 33 - это вид "123" в hex (UTF8)
FE FF 00 31 00 32 00 33 - это "123" в hex (UCS2-big endian)
FF FE 31 00 32 00 33 00 - это "123" в hex (UCS2-little endian)

Какой из них верный?

P.S. Я так понял для x86 это третий вариант.

Ponchik
12.10.2009, 09:30
Эмм.. HEX это 16ричная система просто, и получаеца код букофке в 16 ричной системе
Ну 123 это 31 32 33 ИМХО

-=lebed=-
12.10.2009, 09:34
Эмм.. HEX это 16ричная система просто, и получаеца код букофке в 16 ричной системе
Ну 123 это 31 32 33 ИМХО
Это в ASCII так. В Unicode каждая буковка это минимум 2 байта. (в UTF-8 только 1 байт для символов с кодами менее 0x00000080)

Ponchik
12.10.2009, 09:40
Давай проверим :o
номер символа "1" это 49 в 10-и ричной
49(10) = 31(16)

номер символа "2" это 50 в 10-и ричной
50(10) = 32(16)

номер символа "3" это 51 в 10-и ричной
51(10) = 33(16)

31 32 33 :rolleyes:

Но я тебя всёравно непонял, такчто хз :)
====
Это я всё про HEX, а UNICODE хз

St0nX
12.10.2009, 09:48
00 31 00 32 00 33 имхо

SpangeBoB
12.10.2009, 09:59
49 00 50 00 51 00

-=lebed=-
12.10.2009, 09:59
Это я всё про HEX, а UNICODE хз
_http://ru.wikipedia.org/wiki/UTF-16

Cthulchu
12.10.2009, 10:12
1.1 (соответствует стандарту ISO/IEC 10646—1:1993), стандарт 1991-1995 гг
2.0, 2.1 (тот же стандарт ISO/IEC 10646—1:1993 плюс дополнения: «Amendments» с 1-го по 7-е и «Technical Corrigenda» 1 и 2), стандарт 1996 г
3.0 (стандарт ISO/IEC 10646—1:2000), стандарт 2000 г
3.2 (стандарт 2002 года)
4.0 (стандарт 2003)
4.01 (стандарт 2004)
4.1 (стандарт 2005)
5.0 (стандарт 2006)
5.1 (стандарт 2008)
5.2 (стандарт 2009)
:(

spider-intruder
12.10.2009, 10:13
Не проще ли было написать в редакторе "123", сохранить в нужной кодировке и посмотреть на результат?!

Cthulchu
12.10.2009, 10:18
Птичка, ты что-то перепутал:

Начиная с Windows 2000, служебная программа «Таблица символов» показывает все символы в ОС и позволяет копировать их в буфер обмена. Похожая таблица есть, например, в Word-е.

Иногда можно набрать шестнадцатеричный код, нажать Alt+X и код будет заменён на соответствующий символ, например, в WordPad-е, Word-е и в адресной строке браузера. В редакторах Alt+X выполняет и обратное преобразование.

Для ввода в десятеричном виде можно с нажатым Alt-ом набрать код на цифровой клавиатуре, в шестнадцатеричном виде — можно выставить (по умолчанию отсутствующее) строковое значение реестра HKEY_Current_User\Control Panel\Input Method\EnableHexNumpad в «1», перезагрузиться, а затем, зажав Alt и нажав «+» справа, набрать код. В разных местах Windows комбинации с Alt-ом работают по-разному, например в блокноте Alt-937 даст «й» (в CP866 это символ с кодом 169=937 mod 256), Alt-0937 даст «©» (169 в Latin-1), а уже Alt-Plus-3a9 даст «Ω» из Юникода (3a916=937). В WordPad-е и Word-е по-любому будет «Ω». А в консоли сюрприз.

-=lebed=-
12.10.2009, 10:24
Не проше ли было написать в редакторе "123", сохранить в нужной кодировке и посмотреть на результат?!
По твоему я как делал?


Порядок байтов

В потоке данных UTF-16 старший байт может записываться либо перед младшим (UTF-16 Big Endian), либо после младшего (UTF-16 Little Endian). Иногда кодировку Юникода Big Endian (UTF-16BE) называют Юникодом с обратным порядком байтов. Аналогично существует два варианта четырёхбайтной кодировки — UTF-32BE и UTF-32LE.

Для определения формата представления Юникода в текстовом файле используется приём, по которому в начале текста записывается символ U+FEFF (неразрывный пробел с нулевой шириной), также именуемый меткой порядка байтов (англ. Byte Order Mark, BOM). Этот способ позволяет различать UTF-16LE и UTF-16BE, поскольку символа U+FFFE не существует. Также он иногда применяется для обозначения формата UTF-8, хотя к этому формату и неприменимо понятие порядка байтов. Файлы, следующие этому соглашению, начинаются с таких последовательностей байтов:
UTF-8
EF BB BF
UTF-16BE
FE FF
UTF-16LE
FF FE
UTF-32BE
00 00 FE FF
UTF-32LE
FF FE 00 00

Файлы в кодировках UTF-16 и UTF-32, не содержащие BOM, должны иметь порядок байтов big-endian (unicode.org).

К сожалению, этот способ не позволяет надёжно различать UTF-16LE и UTF-32LE, поскольку символ U+0000 допускается Юникодом (хотя реальные тексты редко начинаются с него).

spider-intruder
12.10.2009, 10:51
По твоему я как делал?
А на кой тогда спрашивать тут? :-) Это тест?!

-=lebed=-
12.10.2009, 11:24
А на кой тогда спрашивать тут? :-) Это тест?!
Нет, не тест. Просто надо выяснить в какой именно Юникод преобразовывает пароли PasswordsPro при бруте, если выставить эту опцию.
5fa285e1bebe0a6623e33afc04a1fbd5:123
c31ac605793f580b386c0fb53f1b9775:12345

Это MD5, но от unicode, вот надо бы как-то в ASCII получить набор символов, но нуль байт эту идею сводит на нет!

krypt3r
12.10.2009, 11:26
EF BB BF 31 32 33 - это вид "123" в hex (UTF8)
FE FF 00 31 00 32 00 33 - это "123" в hex (UCS2-big endian)
FF FE 31 00 32 00 33 00 - это "123" в hex (UCS2-little endian)

Нужные байты выделены красным. Первые байты - это BOM, добавляемые редактором

-=lebed=-
12.10.2009, 11:31
EF BB BF 31 32 33 - это вид "123" в hex (UTF8)
FE FF 00 31 00 32 00 33 - это "123" в hex (UCS2-big endian)
FF FE 31 00 32 00 33 00 - это "123" в hex (UCS2-little endian)

Нужные байты выделены красным. Первые байты - это BOM, добавляемые редактором

Это понятно (про BOM) Вариант в Пасспро третий используется, не в курсе?