Forum Webscript.Ru

Программирование => Perl => Тема начата: cr4ck3r от 02 Апреля 2006, 20:13:53

Название: Проблема с hex строкой
Отправлено: cr4ck3r от 02 Апреля 2006, 20:13:53
Требуется создать строку типа:
my $foot="\\x00\\x00\\x01\\x00\\x01";
И я ее создаю из строки:
$host=\'test.ru\';
foreach my $sym(split(//,$host)) {
   $temp.=sprintf("%x",ord($sym));
}
в итоге получаю строку содержащую в общем-то то что надо, но при записи в файл (к примеру) эта строка не понимается как шестнадцатеричная...
или...
в общем проблема в сочетании шестадцатеричных строк и обычных?
К примеру упаковав IP адрес через
pack(\'C4\',$ip1,$ip2,$ip3,$ip4) - я получаю нужную мне строку, а вот при попытке тоже самое сделать с обычной строкой (к примеру имя хоста) - получаю фигню... в смысле данные не рассматриваются как hex, а рассматриваются как обычная строка?
Запутанно объясняю - просто уже торможу виимо..
если кто-то понял проблему - подскажите плз...
Название: Проблема с hex строкой
Отправлено: NeoNox от 03 Апреля 2006, 12:15:10
Если я правильно тебя понял, у тебя проблемы с типом представления.
Попробуй представить в Unicode. Я в utf8 не имел проблем с такой задачей.
Например:
open( FILE, ">>:utf8", $fname )
Название: Проблема с hex строкой
Отправлено: cr4ck3r от 03 Апреля 2006, 15:47:15
Разобрался - просто ступил...
Спасибо NeoNox