|
|
|
| Такая проблема.
Есть некий текст, который идет допустим с рсс Яндекса. Мне нужно его разбить на 2 куска и между ними вставить разделитель, вроде все просто
$content = "шлепая по лужам, шумно дыша";
echo substr($content,0,11)." Test ".substr($content,10);
|
Получаю результат:
шлепая по лужам Test �, шумно дыша
Вставляется какой-то левый символ которого нет в базовом тексте. При попытке вставить эти данные в БД они обрезаются ровно по этому символу.
Возможно какая-то проблема кодировки? Но как это исправить ХЗ. | |
|
|
|
|
|
|
|
для: trix
(21.07.2009 в 13:08)
| | А в какой кодировке яшкин файл, и в какой вы работаете? substr тут совсем не при чем. | |
|
|
|
|
|
|
|
для: sim5
(21.07.2009 в 13:25)
| | А шут его знает кто тут причем!
Яшка вроде как UTF-8 отдает. База данных у меня utf8_general_ci. Но данные обрабатываются в компиляторе php значит его кодировка нужна!?
Она указывается как-то в php.ini ?
Можно поробывать этот символ заменть str_replace но как его поймать? Броузер его выдает квадратиком просто | |
|
|
|
|
|
|
|
для: trix
(21.07.2009 в 13:54)
| | Это в httpd.conf Апач прописывается, например:
#
# Denwer: default charset.
#
AddDefaultCharset windows-1251
Такое - � может возникать от того, что работа ведется с разными кодировками, и в конечном наборе нет представления символа, поэтому оно заменяется на html-представление. Вообще же, для работы с мультибайтными строками есть свои функции, а многие функции работы с однобайтными строками с мультибайтными строками будут работать некорректно. В этом тоже может заключаться причина.
Получить кодировку страницы можно так:
<?
function getCharset($url) {
$ch = @get_headers($url, 1);
return $ch ? substr($ch['Content-Type'], strpos($ch['Content-Type'], "=")+1) : false;
}
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(21.07.2009 в 15:26)
| | Все OK надо было юзать функцию mb_substr(); | |
|
|
|
|
автор: Жмурик (22.07.2009 в 03:39) |
|
|
для: trix
(21.07.2009 в 16:14)
| | я ща курну | |
|
|
|
|
|
|
|
для: sim5
(21.07.2009 в 15:26)
| | > return $ch ? substr($ch['Content-Type'], strpos($ch['Content-Type'], "=")+1) : false;
Амикошонство это... | |
|
|
|