CMS YourArticleDirectory-кодировка php скрипта.

Статус
В этой теме нельзя размещать новые ответы.

игорь23

Создатель
Регистрация
4 Янв 2008
Сообщения
14
Реакции
0
Здравствуйте! Разжился я нужным скриптом php (CMS YourArticleDirectory-ver2.7). Но вот без проблем как всегда не обшлось. Скрипт импортный и в нём две кодировки,
( utf8 и ISO-8859-1).UTF-8 ещё нормально но ISO-8859-1 не давала перевести на русский. Я все ISO-8859-1 заменил на UTF-8 и сохранил файлы без BOM. После этого русские буквы стали прописываться в шаблоне (Front и Adminка) нормально,а вот контент(статьи) с кракозябрами выводятся.
Причём не определяются только буквы(ш,ч,и). Вторая проблема состоит в ссылка (SEF URL),они вообще пропали и стали такими(/----.htm). Пробовал в (.htacces) вставить не помогло.
AddDefaultCharset UTF-8
php_value default_charset UTF-8
php_value mbstring.internal_encoding UTF-8
Я не силён в PHP и прошу помочь добрым советом.
Подскажите пожалуйста способы решения. Заранее благодарен!!!
 
Пробей весь скрипт на наличие функции Для просмотра ссылки Войди или Зарегистрируйся.
Она скорее всего внутри скрипта переводит туда-сюда кодировки, т.к. у тебя используется одна - можешь смело удалять.
 
Пробей весь скрипт на наличие функции Для просмотра ссылки Войди или Зарегистрируйся.
Она скорее всего внутри скрипта переводит туда-сюда кодировки, т.к. у тебя используется одна - можешь смело удалять.

Вот что нашлось,что из этого удалять?:(
1)if (function_exists('iconv') && ($return = @iconv('UTF-8', 'UTF-8//IGNORE', $str)))
2)if (function_exists('iconv') && ($return = @iconv($input, $output, $data)))
3)$useIconv = true;
if (isset($build_params['ignore-iconv'])) {
$useIconv = !$build_params['ignore-iconv'];
}
foreach ($input as $hdr_name => $hdr_value) {
if (preg_match('#([\x80-\xFF]){1}#', $hdr_value)) {
if (function_exists('iconv_mime_encode') && $useIconv) {
$imePrefs = array();
if ($build_params['head_encoding'] == 'base64') {
$imePrefs['scheme'] = 'B';
} else {
$imePrefs['scheme'] = 'Q';
}
$imePrefs['input-charset'] = $build_params['head_charset'];
$imePrefs['output-charset'] = $build_params['head_charset'];
$imePrefs['line-length'] = 74;
$imePrefs['line-break-chars'] = "\r\n"; //Specified in RFC2047

$hdr_value = iconv_mime_encode($hdr_name, $hdr_value, $imePrefs);
$hdr_value = preg_replace("#^{$hdr_name}\:\ #", "", $hdr_value);
} elseif ($build_params['head_encoding'] == 'base64') {
//Base64 encoding has been selected.
//Base64 encode the entire string
$hdr_value = base64_encode($hdr_value);
 
Точно вам к сожалению не скажу, но попробуйте в третьей строке заменить $useIconv = true на $useIconv = false, возможно поможет, судя по контексту.
еще перед этой строкой можете написать $build_params['ignore-iconv'] = true;

Если не получиться, попробуйте методом дедукции, удалите первую строку, затем вторую :)
 
Точно вам к сожалению не скажу, но попробуйте в третьей строке заменить $useIconv = true на $useIconv = false, возможно поможет, судя по контексту.
еще перед этой строкой можете написать $build_params['ignore-iconv'] = true;
Если не получиться, попробуйте методом дедукции, удалите первую строку, затем вторую :)

Заменил но пока конкретных изменений не заметил. Буду тестить,если что отпишусь. Спасибо!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху