Проблема с кодировкой (UTF) при генерация транслита В ЧПУ

70 views
Skip to first unread message

BlackICE

unread,
Mar 31, 2010, 9:19:41 AM3/31/10
to InTerra Blog Machine
Приветствую!

Версия 1.90. Все под UTF'ом. При генерации ЧПУ вместо нормального
транслита получается невменяемый набор букв. Например: слово
"проверка" интерпретируется так "xxxexnxuxb.html".

В чем может быть проблема? У меня пока только одно предположение:
много файлов переводил из cp1251 в UTF-8, может забыл какой то
перевести?

Строки 44 и 45 в файле /lib/nwacko/classes/macroProcessor.class.php
закомментированы.

Alexey Kulikov

unread,
Mar 31, 2010, 10:09:07 AM3/31/10
to interra-bl...@googlegroups.com
Я думаю это глючит генератор латиници из транслита — я его
позаимствовал у Романа Иванова (Яндекс) и он кажется тоже не дружит с
UTF8 :(

31.03.2010, в 15:19, BlackICE написал(а):

> --
> Вы получили это сообщение, поскольку подписаны на группу InTerra
> Blog Machine.
>
> Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу interra-bl...@googlegroups.com
> .
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу interra-blog-mac...@googlegroups.com
> .
> О дополнительных функциях можно узнать в группе по адресу http://groups.google.com/group/interra-blog-machine?hl=ru
> .
>


-----------------------

Alexey Kulikov, MSc
essentialmind gmbh
Vienna, Austria
Internet: www.essentialmind.com
Email: a.ku...@essentialmind.com
Phone: +43 (699) 1 922 87 92
-----------------------
Rocket Science for your Web-Based Application

Notice:
This message is the property of Essentialmind and is intended solely
for the named recipients or entity to whom this message is addressed.
We state explicitly that the employees of Essentialmind will under no
circumstances ask for passwords or personal data via email fax or phone.

BlackICE

unread,
Mar 31, 2010, 2:30:40 PM3/31/10
to InTerra Blog Machine
Мдя, придется руками всякий раз ЧПУ вводить вводить...
Или забить на UTF-8 версию :) 1.83 весьма не плохо работает.

On 31 мар, 18:09, Alexey Kulikov <a.kuli...@gmail.com> wrote:
> Я думаю это глючит генератор латиници из транслита -- я его

Александр Дейнега

unread,
Apr 4, 2010, 5:17:53 PM4/4/10
to InTerra Blog Machine
Эту проблему решил таким образом

<?php

class Translit {
var $cyr=array(
"щ", "ш", "ч", "ц","ю", "я", "ж",
"а","б","в","г","д","е","ё","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х",
"ы","э","є","ї", "No.");
var $lat=array(
"sch","sh","ch","ts","ju","ja","zh","a","b","v","g","d","e","e","z","i","j","k","l","m","n","o","p","r","s","t","u","f","h","y","e","e","i",
"n");

function UrlTranslit($str) {

$str = mb_strtolower($str, "utf-8");
$str = preg_replace("/[_\s\.,?!\[\](){}]+/", "-", $str);
$str = preg_replace("/-{2,}/", "--", $str);
$str = preg_replace("/_-+_/", "--", $str);
$str = preg_replace("/[_\-]+$/", "", $str);

$str = preg_replace("/(ь|ъ)(а|е|ё|и|о|у|ы|э|ю|я)/", "j\\2", $str);
$str = preg_replace("/(ь|ъ)/", "", $str);

for($i=0; $i < count($this->cyr); $i++) {
$c_cyr = $this->cyr[$i];
$c_lat = $this->lat[$i];
$str = str_replace($c_cyr, $c_lat, $str);
}
$str = preg_replace("/j{2,}/", "j", $str);
$str = preg_replace("/[^0-9a-z_\-]+/", "", $str);

return $str;
}
}
?>

Reply all
Reply to author
Forward
0 new messages