Сначала я рекомендую прочитать это: http://www.joelonsoftware.com/articles/Unicode.html (Абсолютный минимум, который должен знать каждый разработчик программного обеспечения Абсолютно, положительно, необходимо знать о Unicode и наборах символов (без извинений!) Джоэла Спольски).
Тогда, если это MySQL, вы можете установить набор символов по умолчанию в соединении с помощью "SET NAMES 'utf8'". Например, в Zend_Framework ($ db-> query ("SET NAMES 'utf8'");)
Другим вариантом является добавление фильтра к данным перед их печатью на экране. Я сделал две удобные функции ...
function utf8encode ($subject, $action = '//TRANSLIT')
{
if ( @iconv( 'UTF-8', "UTF-8{$action}", $subject) == $subject ) {
#-- the value it's utf8
} else {
$subject = utf8_encode ($subject);
}
return $subject;
}
function utf8decode ($subject, $action = '//TRANSLIT')
{
if ( @iconv( 'UTF-8', "UTF-8{$action}", $subject) == $subject ){
$subject = utf8_decode ($subject);
} else {
#-- the value is probably ISO-8859-1
}
return $subject;
}