Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Декодер 1252 в 1251 !?
 
 автор: Inviseble_Demon   (09.10.2008 в 07:44)   письмо автору
 
 

Здравствуйте облазел пол инета не могу найти скрипт который бы перегонял 1252 (аброкодабра) в 1251 (аброкодабра) ?!

Может у кого заволялся клас для перегонки кодеровки ?
И можно ли это зделать через это ?(просто я так перегонял utf-8 в windiws-1251)
$str = iconv('UTF-8', 'WINDOWS-1251', $str);
$str = eregi_replace('CHARSET=utf8', 'CHARSET=cp1251', $str);


Помогите плиз кто чем может )) !

  Ответить  
 
 автор: sim5   (09.10.2008 в 08:31)   письмо автору
 
   для: Inviseble_Demon   (09.10.2008 в 07:44)
 

<?
$s 
"&#1072;&#1073;&#1088;&#1086;&#1082;&#1086;&#1076;&#1072;&#1073;&#1088;&#1072;";
echo 
html_entity_decode($sENT_NOQUOTES'windows-1251');

С чего вы решили, что это UTF-8? Это HTML-unicode.

  Ответить  
 
 автор: Inviseble_Demon   (09.10.2008 в 09:01)   письмо автору
 
   для: sim5   (09.10.2008 в 08:31)
 

Спосибо помогло !

Только я не имел в виду что это UTF я просто сказал что с UTF я работал так )) и спросил можноли использовать iconv для перекодирования 1252 (HTML-unicode).

Большое спосибо ещё раз.

  Ответить  
 
 автор: BinLaden   (10.10.2008 в 20:26)   письмо автору
 
   для: Inviseble_Demon   (09.10.2008 в 09:01)
 

IMHO, sim5 не совсем верно задал вопрос. С чего Вы взяли, что это (... &#1072;&#1073;&#1088; ...) -- windows-1252?

  Ответить  
 
 автор: Inviseble_Demon   (09.10.2008 в 09:09)   письмо автору
 
   для: sim5   (09.10.2008 в 08:31)
 

Созрел ещё один вопрос !

что это за кодеровка и как её перегнать ?!

&Acirc;&acirc;&aring;&auml;&aring;&iacute;&egrave;&aring; (Введение)

  Ответить  
 
 автор: sim5   (09.10.2008 в 09:21)   письмо автору
 
   для: Inviseble_Demon   (09.10.2008 в 09:09)
 

Это на какой-то бред уже похоже. &auml - это умляют для "ненашенского" языка, &iacute; - это акцентирование (ударение), и т.д.. С чего вы взяли что тут написано "Введение"? Это скорее всего ввод руского не понятно под чем, с получением такой аброкодабры.

  Ответить  
 
 автор: Inviseble_Demon   (09.10.2008 в 09:41)   письмо автору
 
   для: sim5   (09.10.2008 в 09:21)
 


d.add(1,0,"&Acirc;&acirc;&aring;&auml;&aring;&iacute;&egrave;&aring;","php_index.htm");
d.add(2,0,"&Ntilde;&egrave;&iacute;&ograve;&agrave;&ecirc;&ntilde;&egrave;&ntilde; &yuml;
d.add(3,2,"&Acirc;&ucirc;&eth;&agrave;&aelig;&aring;&iacute;&egrave;&yuml;","php_vir.htm");


Это згенерировала программа из chm !
Вот здесь если в фррму вставить &Acirc;&acirc;&aring;&auml;&aring;&iacute;&egrave;&aring; то получается Введение ! И в chm тоже написанно Введение.
http://2cyr.com/decode/?lang=ru

Как я понел из этого сайта это iso-8859-15 Если я прав то как перегнать в 1251 ?

  Ответить  
 
 автор: sim5   (09.10.2008 в 09:46)   письмо автору
 
   для: Inviseble_Demon   (09.10.2008 в 09:41)
 

Ну и зачем такое выставлять? То что она вам сделала такую вещь, значит программа генерирующая CHM не работает с русским языком. Если так интересно о кодировках, то можете почитать тут. А вот &ograve;&agrave; &ntilde; и подобное никакого отношения к русскому языку не имеет, это (немного):

&#226; &acirc;  a с акцентом (circumflex)
&#227; &atilde;  a с акцентом (tilde)
&#228; &uml;  a с акцентом (umlaut)


PS. Отредактируйте свое сообщение, удалив все, оставив только небольшую часть, и так, чтобы не разбивала страницу в ширину. Более такого не выставляйте, читать не удобно!

  Ответить  
 
 автор: Inviseble_Demon   (09.10.2008 в 09:55)   письмо автору
 
   для: sim5   (09.10.2008 в 09:46)
 

Я бы рад да не могу ! ссвылка редоктирования почемуто пропала ((

  Ответить  
 
 автор: sim5   (09.10.2008 в 10:06)   письмо автору
 
   для: Inviseble_Demon   (09.10.2008 в 09:55)
 

А когда добавляете сообщение, ведь видите что получается "не хорошо", почему бы сразу не подумать? Нажмите для своего сообщения "Ответить" и в адресной строке измените addpost.php на editpost.php

  Ответить  
 
 автор: Inviseble_Demon   (09.10.2008 в 10:28)   письмо автору
 
   для: sim5   (09.10.2008 в 10:06)
 

ОК

  Ответить  
 
 автор: sim5   (09.10.2008 в 11:41)   письмо автору
 
   для: Inviseble_Demon   (09.10.2008 в 09:41)
 

В данном случае (по этой ссылке), указывается исходная кодировка и (как я понимаю) происходит преобразование пользовательской функцией. Стандартных функций в РНР, которые бы сделали из &Acirc;&acirc;&aring;... русский текст, нет. Тут и Промт не поможет, нужно писать свою.

  Ответить  
 
 автор: AcidTrash   (09.10.2008 в 11:54)   письмо автору
 
   для: sim5   (09.10.2008 в 11:41)
 

Странно, но html_entity_decode() переводит. И действительно это будет "Введение"

d.add(1,0,"&Acirc;&acirc;&aring;&auml;&aring;&iacute;&egrave;&aring;","php_index.htm");
Введение
d.add(2,0,"&Ntilde;&egrave;&iacute;&ograve;&agrave;&ecirc;&ntilde;&egrave;&ntilde; &yuml;
Синтаксис я
d.add(3,2,"&Acirc;&ucirc;&eth;&agrave;&aelig;&aring;&iacute;&egrave;&yuml;","php_vir.htm");
Выражения

  Ответить  
 
 автор: sim5   (09.10.2008 в 11:57)   письмо автору
 
   для: AcidTrash   (09.10.2008 в 11:54)
 

Странно еще более! Ничего подобного не наблюдаю у себя.

PS. Возможно это зависит от установленного по умолчанию языка на сервере. Надо проверить.

  Ответить  
 
 автор: AcidTrash   (09.10.2008 в 12:01)   письмо автору
 
   для: sim5   (09.10.2008 в 11:57)
 

Возможно и от языка.

P.S. Попробовал и под Unix и под Windows - везде работает.

  Ответить  
 
 автор: sim5   (09.10.2008 в 12:03)   письмо автору
 
   для: AcidTrash   (09.10.2008 в 12:01)
 

У меня на Денвере по умолчанию win-1251, а у вас?

  Ответить  
 
 автор: AcidTrash   (09.10.2008 в 12:06)   письмо автору
 
   для: sim5   (09.10.2008 в 12:03)
 

Под Виндовс тоже win-1251.

  Ответить  
 
 автор: sim5   (09.10.2008 в 12:11)   письмо автору
 
   для: AcidTrash   (09.10.2008 в 12:06)
 

Значит не зависит, странно... Ну причина то должна быть этому. Версия РНР, влияние какого либо расширения...? Вопрос...

  Ответить  
 
 автор: AcidTrash   (09.10.2008 в 12:27)   письмо автору
 
   для: sim5   (09.10.2008 в 12:11)
 

>Версия РНР

Судя по всему и не версия PHP, т.к. попробовал и на 4-ке и на 5-ке.

  Ответить  
 
 автор: sim5   (09.10.2008 в 12:35)   письмо автору
 
   для: AcidTrash   (09.10.2008 в 12:27)
 

Значит еще один баг в моей сборке есть )

  Ответить  
 
 автор: Inviseble_Demon   (09.10.2008 в 12:11)   письмо автору
 
   для: AcidTrash   (09.10.2008 в 11:54)
 

Ага у меня тоже сработало ! Спасибки.

  Ответить  
 
 автор: Inviseble_Demon   (09.10.2008 в 12:03)   письмо автору
 
   для: sim5   (09.10.2008 в 11:41)
 

Я тоже так решил и начас писать!

Там такая фича &Acirc; это а (к примеру) другой символ другая буква. и так далее одно радует они постоянны )) кароче сижу и выясняю какой набор символов какую букву обозначает одним словом ЖЕСТЬ.

Вопросик один есть как проще замену зделать ?


$str="&Acirc;&acirc;&aring;&auml;&aring;&iacute;&egrave;&aring;";

$xer_znaet_shto[]="sdf (это типа набор кракодябр)
sdf
sdf
sdf
sf
sf
sdf
sdf
sdfs
dfs
fs
df";

$rashen_pack[]="а
б
в
г
д
е
ё
ж";

for ($i=0; $rashen_pack[!=''; $i++)
{
$str=preg_replace("#$xer_znaet_shto[$i]#", "$rashen_pack[$i]", $str);
}



Как думаеш так нармально или есть вариант попроще.

  Ответить  
 
 автор: BinLaden   (10.10.2008 в 20:52)   письмо автору
 
   для: Inviseble_Demon   (09.10.2008 в 12:03)
 

<?php

$str 
'&Acirc;&acirc;&aring;&auml;&aring;&iacute;&egrave;&aring;';

function 
get_krakozyabr_value($krakozyabr)
{
    if( 
$krakozyabr == 'Acirc' )
    {
        return 
'В';
    }
    else if( 
$krakozyabr == 'acirc' )
    {
        return 
'в';
    }
    else if( 
$krakozyabr == 'aring' )
    {
        return 
'е';
    }
    else if( 
$krakozyabr == 'auml' )
    {
        return 
'д';
    }
    else if( 
$krakozyabr == 'iacute' )
    {
        return 
'н';
    }
    else if( 
$krakozyabr == 'egrave' )
    {
        return 
'и';
    }

    
# Tut drugie krakozyabry
}

function 
zamenitb_krakozyabry($str)
{
    for(
$peremennaja_iteracii 0,
    
$uzhe_razbiraem false,
    
$novaya ''$peremennaja_iteracii strlen($str); $peremennaja_iteracii++)
    {
        if( 
$str$peremennaja_iteracii ] == '&' && $uzhe_razbiraem )
        {
            
trigger_error('Сентакс еррор ин ' htmlspecialchars($str), E_USER_ERROR);
        }
        else if( 
$str$peremennaja_iteracii ] == '&' )
        { 
            
$uzhe_razbiraem true;
            
$krakozyabr '';
        }
        else if( 
$str$peremennaja_iteracii ] == ';' && $uzhe_razbiraem )
        {
            
$uzhe_razbiraem false;
            
$novaya .= get_krakozyabr_value$krakozyabr );
        }
        else if( 
$uzhe_razbiraem )
        {
            
$krakozyabr .= $str$peremennaja_iteracii ];
        }
        else
        {
            
$novaya .= $str$peremennaja_iteracii ];
        }
    }

    return 
$novaya;
}

$str zamenitb_krakozyabry($str);

echo 
$str;
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования