В базу инфа должна попадать всегда в одной и той же кодировке. Если сейчас у тебя кодировка базы - Windows-1251 - не вижу причин её менять на UTF-8, особенно, если сайт - не мультиязыковой.Автор оригинала: monk
В зависимости от чего в базу пишется инфа в той или иной кодеровке?
Функция header к БД не имеет никакого отношения, все функции работы с БД (если это MySQL) описаны здесьВозможно ли осущетвить запись в базу только в одной кодеровке используя только header ?
Перекодировка текста может быть осуществлена при помощи [m]iconv[/m]Если нет, то с помощью каких функций?
Да.В какой кодеровке лучше хранить данные в базе?
Слышал такое "моя база по умолчанию настроена на windows-1251". Это значит, что данные нужно писать в нее только в win-1251?
SHOW VARIABLES LIKE 'character_set'Как можно узнать какая кодировка по умолчанию стоит в моей mySQL?
В этом нет необходимости. Поскольку путаницы от этого у тебя в голове только увеличиться. Тем более, не факт, что твоя БД поддерживает UTF-8.И как изменить?
Если у тебя есть соответствующие возможностиАвтор оригинала: monk
Остановился на ф-ции iconv. Не хочет она работать. Нашел в поиске, что надо ставить модуль libiconv. Т.е. получается если хост провайдер не предостовляет этот модуль. то нодо ставить самому?
Не верюecho '$rt';
Выводит цифры какие-то..
Потому что ты не описал задачу. Откуда у тебя получаются эти данные? Каким образом? Из воздуха?Автор оригинала: monk
Никто не знает...
Как прикрутить iconv под *nix написано в мане по [m]iconv[/m], кроме того, для работы с кодировками наличие библиотек вовсе необязательно, всё что нужно - умение программировать и таблица кодировки. Конечно пользоваться iconv проще и быстрее.Под Lunix не получится прикрутиь iconv.dll библиотеку
Забей. Это глюк оперы. При работе с WAP эта зараза передаёт только младший байт символов, при чём, в UTF-16BE.Автор оригинала: monk
Тестируем наш любимый КАТАЛОГ WAP сайтов на ОПЕРЕ,
....
С чем это может быть связано?
<?
header('Content-Type: text/vnd.wap.wml; charset=UTF-8');
ob_start('CP1251toUTF8');
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Проверка">
<p>Проверка кириллицы в UTF-8</p>
</card>
</wml>
<?
ob_end_flush();
function CP1251toUTF8($str){ // (C) SiMM
static $table = array("\xA8" => "\xD0\x81", // Ё
"\xB8" => "\xD1\x91", // ё
);
return preg_replace('#[\x80-\xFF]#se',
' "$0" >= "\xF0" ? "\xD1".chr(ord("$0")-0x70) :
("$0" >= "\xC0" ? "\xD0".chr(ord("$0")-0x30) :
(isset($table["$0"]) ? $table["$0"] : "")
)',
$str
);
}
?>
Это можно узнать из приходящих заголовков (phpinfo(INFO_VARIABLES) + getallheaders)Автор оригинала: monk
неизвестно с какого браузера и в какой кодировке они вносят данные
Потому что ты не приводишь всё к единой кодировкеВсе записи в разных кодировках получаются
http://phpclub.ru/talk/showthread.php?threadid=60127поэтому и получается полная ерунда.