Просмотр полной версии : Переменная выводиться в другой кодировке...?
Првет ВСЕМ!!!
Есть файлы .tpl (Шаблон) в которых нормально выводяться переменные с руской кодировкой, но есть одна переменная $title которая в любом .tpl файле выводиться в другой кодировке (кразябрами)....подскажите где рыть? Может где то в Smarty?:)
а откуда берётся значение в $title?
Вот два файла, ordner.php обрабатывает запрсы а folders.tpl выводит все, там есть таблица в ней есть переменная {$item.titel} название папок....
Помоему переменная $item берется из index.php он тоже есть....
А теперь самое интересное в файле index.php справа в таблице есть переменная {$item.name} она выводит тоже самое меню созданных но нормально...
На скриншоте это видно хорошо....
Не отображаются те русcкие слова которые беруться из базы данных, хотя в базе все впорядке он коректно заносит кодировка стоит cp1251_general_ci , а вот выводит...кракозябры...:)
согласен, утф роксит.
если данные действительно берутся из БД - посмотри какая у тебя кодировка соединения. Сам сайт я так понимаю открывается в 1251?
и все его админские части тоже (чтобы в базу писалось в нужной кодировке)
короче такая штука пишу
mysql_query("set names utf8");
появили кразябры но другие, появились даже в других местах, значит работает
а если такое написать только для кирилици как правельно пому что я пишу mysql_query("set names windows-1251"); и нефига...
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
попробуйте эту переменную в БД перезаписать. может быть она на этом этапе просто испортилась
Пробовал:
mysql_query ("SET NAMES 'cp1251'");
и так:
mysql_query ("SET CHARACTER SET cp1251");
нечего,
Еще нашел вот такой кусок кода:
function Ueber_XML($referenz, $msg_id, $mail, $ip, $partner = array(), $richtung, $ueber_start, $ueber_ende, $usermail)
{
$d_format = 'd/m/Y H:i:s';
$crlf = "\r\n";
$partner = implode('; ', $partner);
$msg_id = str_replace(array('<','>'), '', $msg_id);
$xml = '<?xml version="1.0" encoding="UTF-8"?>' . $crlf;
$xml .= '<!DOCTYPE hi3-email SYSTEM "hi3-email.dtd">' . $crlf;
$xml .= '<?xml:stylesheet href="E-Mail.xsl" type="text/xsl"?>' . $crlf;
$xml .= '<hi3-email>' . $crlf;
$xml .= ' <Versionskennung>1.1</Versionskennung>' . $crlf;
$xml .= ' <Datensatzart>report</Datensatzart>' . $crlf;
$xml .= ' <Referenznummer>' . utf8_encode($referenz) . '</Referenznummer>' . $crlf;
$xml .= ' <Zuordnungsnummer>' . utf8_encode($msg_id) . '</Zuordnungsnummer>' . $crlf;
$xml .= ' <Kennung-des-zueA>' . utf8_encode($usermail) . '</Kennung-des-zueA>' . $crlf;
$xml .= ' <IP>' . utf8_encode($ip) . '</IP>' . $crlf;
$xml .= ' <Partner-Kennung>' . utf8_encode($partner) . '</Partner-Kennung>' . $crlf;
$xml .= ' <Beginn>' . utf8_encode(date($d_format)) . '</Beginn>' . $crlf;
$xml .= ' <Richtung>' . $richtung . '</Richtung>' . $crlf;
$xml .= ' <Ausloesegrund-zueA>erfolgreich</Ausloesegrund-zueA>' . $crlf;
$xml .= ' <Beginn-UEM>' . utf8_encode(date($d_format, $ueber_start)) . '</Beginn-UEM>' . $crlf;
$xml .= ' <Ende-UEM>' . utf8_encode(date($d_format, $ueber_ende)) . '</Ende-UEM>' . $crlf;
$xml .= ' <email>' . $crlf;
$xml .= ' <!-- Beginn E-Mail -->' . $crlf;
$xml .= ' <![CDATA[' . wordwrap(base64_encode($mail), 76, $crlf, true) . ']]>' . $crlf;
$xml .= ' <!-- Ende E-Mail -->' . $crlf;
$xml .= ' </email>' . $crlf;
$xml .= '</hi3-email>';
return $xml;
}
и там есть функция utf8_encode, пытался заменить на cp1251_encode, нет такой функции...
Теоретичеки проблема такова что именно все данные которые выводять ся в таблицу , выводяться в другой кодировке...
что-то я не понял, откуда здесь вдруг XML нарисовался?
и у него-то небось utf-8 кодировка, так что конвертировать в 1251 ни в коем случае нельзя.
try: mysql_query('set character_set_results=utf8',$link);
Может так что то получиться?
Держите мою версию почтовой системы
http://*****************/files/3210778
Проблемка этой версии описана выше :)
Помогите кто может....
try: mysql_query('set character_set_results=utf8',$link);
Cкажите этоже надо тогда перевести все файлы в utf-8 и базу?:)
Вот нашел эта фукция заменяла букву д на какую то хрень, я сделал вот так:
$out = str_replace("Д", "Д", $out);
но это только в теле письма.....
А как написать заменить все русские буквы?
Просто гдето есть эта функция которая заменяет русские буквы в именах папок и адресов....
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.