Чудо символ! Что это и как его убить?

guru85

Постоялец
Регистрация
24 Мар 2010
Сообщения
100
Реакции
4
В текстовом файле txt есть символ § , при получениее сие чуда в скрипт, и выводе в браузер, он приобретает вот такое облик � , а там дальше в базу даных он заносится и когда от туда вызывается, вот тогда все грохается к чертовой матери. убираю его из текста, все ништяк. это не помагает
PHP:
$maspostfooters2=str_replace("§"," ",$maspostfooters3);
и это тоже
PHP:
$maspostfooters2=str_replace("�"," ",$maspostfooters3);
есль мысля, что чтото с кодировкой.
 
Ты редактируешь файл в разных кодировках вот и вылазиет этот символ....
следи за кодировкой в которой создан файл.
 
Это параграф. Можно заменить на спецсимвол:
PHP:
§
 
В текстовом файле txt есть символ § , при получениее сие чуда в скрипт, и выводе в браузер, он приобретает вот такое облик � , а там дальше в базу даных он заносится и когда от туда вызывается, вот тогда все грохается к чертовой матери. убираю его из текста, все ништяк. это не помагает
PHP:
$maspostfooters2=str_replace("§"," ",$maspostfooters3);
и это тоже
PHP:
$maspostfooters2=str_replace("�"," ",$maspostfooters3);
есль мысля, что чтото с кодировкой.
ага. с кодировкой. Если файл приобретает такой вид- значит ты не всё удалил- какой то код остался от символа. Поробуй почистить все такие символы-
PHP:
echo preg_replace('~[\xA0-\xFF]~u', '~', $e);
 
Что бы не создавать тему, спрошу тоже здесь.

У меня была похожая ситуация, но там смысл скрипта был в обрезке текста для новостного модуля.

Получалось примерно такое:

Текст текст текс�... т.е. последний символ перед точками шёл квадратом, причём не всегда и для разных символов.

Я тоже пытался от него избавиться через замену, два часа крутил этот скрипт и плюнул. Не подумал тогда о спец символах.
Но у ТС понятно - есть конкретный символ, а у меня то что было?
 
А у тебя наверное текст был в кодировке utf и обрезался побайтово. А в utf не латинские символы занимают два байта, а не один. Вот и получалось так, что время от времени у последнего символа резался один байт и вместо него выводилось непонятно что.
 
Назад
Сверху