LINUX.ORG.RU

utf8 в 4 числа

 


0

1

Нужно каким-то образом преобразовать символы в utf8, в представление одного из 4 чисел (1, 2, 3, 4), обратное преобразование не нужно. В общем, нужно что бы символ А например преобразовался в 1, а символ Б в 3, и т.п. То есть, любой символ преобразовался в одну из 4 цифр, и постоянно преобразовывался именно в нее. Как сделать (допустим на питоне, не суть важно)?

Не очень понятно что именно надо, но вот вам python:

[ord(c) % 4 + 1 for c in u'привет']
Deleted
()

Нужно вот что: на входе программе даем некий текст в utf8, а она его символы преобразует в числа от 1 до 4, итогом мы эти числа перем и производим некие действия, например если 4 то рисуем 4 красных пикселя, если один, то один зеленый пиксель и т.д.

pleiotropy
() автор топика
Ответ на: комментарий от Gvidon

mironov_ivan
Прикольно, вот таким лор получился: http://uploads.ru/feiWD.jpg

<?php
$arr = str_split(file_get_contents('https://www.linux.org.ru'));
$x = 0; $y = 0;
$i = imageCreate(8000, 8000);
$background = imagecolorallocate($i, 255, 255, 255);
$red = imagecolorallocate($i, 255, 0, 0);
foreach ($arr as &$value) {
    switch (ord($value) % 4 + 1) {
        case 1 :
            $x++;
            break;
        case 2 :
            $x--;
            break;
        case 3 :
            $y++;
            break;
        case 4 :
            $y--;
            break;
    }
    imageSetPixel($i, $x, $y, $red);
}
Header("Content-type: image/jpeg");
imageJpeg($i);
imageDestroy($i);
?>

pleiotropy
() автор топика
Ответ на: комментарий от pleiotropy

Ошибка небольшая, нужно же от центра... Правильно так:

$x = 4000; $y = 4000;

pleiotropy
() автор топика
Ответ на: комментарий от pleiotropy

Есть подозрение, что пыха не может в ord() юникода, поэтому линия уходит направо из-за кириллицы, где часто встречаются байты 0xd0.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.