За последние 24 часа нас посетили 16833 программиста и 1280 роботов. Сейчас ищет 1431 программист ...

\x?? символы - как убрать?

Тема в разделе "Регулярные выражения", создана пользователем DZEN, 15 июн 2008.

  1. DZEN

    DZEN Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    250
    Симпатии:
    0
    В тексте есть символы UTF с кодом вроде "\xB1" и "\xC2" которые видны как квадраты. В базу данных они не пишутся (cp1251), как такие символы убать с помошью регулярки - это ведь не буквы?
     
  2. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    дык сконвертируй базу в utf :)
     
  3. DarkElf

    DarkElf Активный пользователь

    С нами с:
    22 окт 2006
    Сообщения:
    1.632
    Симпатии:
    0
    имхо, правильнее в конкретном соединении сказать базе, что ты ей шлешь и от нее ждешь UTF8, а как уж она их там хранит - сугубо ее личное дело.
     
  4. DZEN

    DZEN Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    250
    Симпатии:
    0
    Это не вариант. Нужно именно убрать эти символы.
     
  5. NOmeR1

    NOmeR1 Активный пользователь

    С нами с:
    11 май 2008
    Сообщения:
    97
    Симпатии:
    0
    Если нужно регуляркой то вот
    Код (Text):
    1. <?php
    2.     $regex = '\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39';
    3.     echo preg_replace('~\\\\x([a-z0-9]{2})~e', '"\x\\1"', $regex);
    4. ?>
    А на самом деле всё проще
    Код (Text):
    1. <?php
    2.     echo "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39";
    3. ?>
    Просто используются двойные кавычки.

    В двух случаях вывод:
    Код (Text):
    1. 0123456789