ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Unicode
  #1  
Старый 19.07.2009, 15:05
Solker
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме:
389768

Репутация: 158
По умолчанию Unicode

"\u041d\u0430 \u043c\u043e\u043b\u043e\u0434\u043e\u0433\u043e"

Как средствами PHP преобразовать эту строку в обычную кодировку cp1251 например.

На выходе должно получится
"На молодого"

Я посмотрел в мануле, там есть функции для работы с unicode, но они появятся только в 6 версии.
А как сделать поддержу в 5, этих функций, я не знаю.

Надеюсь на помощь, спасибо.
 
Ответить с цитированием

  #2  
Старый 19.07.2009, 15:17
mailbrush
Познавший АНТИЧАТ
Регистрация: 24.06.2008
Сообщений: 1,996
Провел на форуме:
6075534

Репутация: 2731


Отправить сообщение для mailbrush с помощью ICQ
По умолчанию

РНР5 и Юникод - это песнь, что стону подобна. Потому что эти два понятия несовместимы...
 
Ответить с цитированием

  #3  
Старый 19.07.2009, 15:42
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме:
3578578

Репутация: 275
Отправить сообщение для Forcer с помощью ICQ
По умолчанию

Цитата:
Сообщение от mailbrush  
РНР5 и Юникод - это песнь, что стону подобна. Потому что эти два понятия несовместимы...
это такой неслабый easter egg в php
 
Ответить с цитированием

  #4  
Старый 19.07.2009, 15:46
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Почему несовместимы? А как это по вашему сделано?

http://2cyr.com/decode/?lang=ru
 
Ответить с цитированием

  #5  
Старый 19.07.2009, 16:10
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме:
3578578

Репутация: 275
Отправить сообщение для Forcer с помощью ICQ
По умолчанию

Цитата:
Сообщение от Pashkela  
Почему несовместимы? А как это по вашему сделано?

http://2cyr.com/decode/?lang=ru
есть тысяча и один способ это сделать без php.
 
Ответить с цитированием

  #6  
Старый 19.07.2009, 17:22
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Вот статья:
Код:
http://www.linkexchanger.su/2008/41.html
вот пример к статье:
Код:
http://www.linkexchanger.su/example_json/json2.zip
там два файла:

1. JSON.php - класс
2. json2.php - пример работы с классом

Замените содержимое json2.php на вот это:

PHP код:
<pre>
<?php
error_reporting
(E_ALL);
// динамическая корректировка путей к PEAR
$PEAR_PATH_LOCAL $_SERVER['DOCUMENT_ROOT'].'/PEAR';
    
    
set_include_path(
        
get_include_path() . PATH_SEPARATOR $PEAR_PATH_LOCAL
    
);

class 
Auto {
    public 
$firm;
    public 
$model;
    public 
$year;
    public 
$price;
    public 
$sellers;
    
    function 
Auto($firm,$model,$year,$price) {
        
$this->firm $firm;
        
$this->model $model;
        
$this->year $year;
        
$this->price $price;
        
$this->sellers = array();
    }
}

?>

<?php

$oAuto 
= new Auto("Audi""A6"200878000);
$oAuto->sellers[0] = "Фирма А";
$oAuto->sellers[1] = "Фирма Б";
$oAuto->sellers[2] = "Фирма В";

require_once(
'JSON.php');

$json = new Services_JSON();

$kod '\u041d\u0430 \u043c\u043e\u043b\u043e\u0434\u043e\u0433\u043e';
echo 
"Coded string: $kod \n";

$sJSONText '{"firm":"Audi","model":"A6","year":2008,"price":78000,"sellers":["' $kod '","",""]}';

$value $json->decode($sJSONText);

echo 
"Decoded string: {$value->sellers[0]}\n";

?>
</pre>
и наслаждайтесь расшифровкой UNICODE даже под PHP5, без ограничения в 50 кb как, например, здесь:
Код:
http://2cyr.com/decode/?lang=ru
PS: В красивый вид приводить и оптимизировать не стал, просто сделал работоспособным. Зашифрованный текст храниться в переменной $kod (меняйте прямо в скрипте)

Последний раз редактировалось Pashkela; 19.07.2009 в 17:29..
 
Ответить с цитированием

  #7  
Старый 19.07.2009, 17:48
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
Провел на форуме:
3578578

Репутация: 275
Отправить сообщение для Forcer с помощью ICQ
По умолчанию

такая вещь на unicode должна поставляться из коробки. json требует отдельной библиотеки. наверняка существуют еще либы для работы с юникодом в php. но как разработчики дожили до 5 версии своего продукта и не обеспечели поддержку юникода на уровне языка как минимум странно и говорит лишь о том, что php все еще не далеко ушел в своем развитии от первоначальной расшифровки своей абревиатуры.
 
Ответить с цитированием

  #8  
Старый 19.07.2009, 18:01
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

а вот вам фактически аналог http://2cyr.com/decode/?lang=ru (только без выбора языка, кодировок и прочего - сами додумкаете, это уже легко) Без ограничений на размер вводимого закодированного текста (практически)::

PHP код:
<?php
error_reporting
(E_ALL);
// динамическая корректировка путей к PEAR
$PEAR_PATH_LOCAL $_SERVER['DOCUMENT_ROOT'].'/PEAR';
    
    
set_include_path(
        
get_include_path() . PATH_SEPARATOR $PEAR_PATH_LOCAL
    
);

class 
Auto {
    public 
$firm;
    public 
$model;
    public 
$year;
    public 
$price;
    public 
$sellers;
    
    function 
Auto($firm,$model,$year,$price) {
        
$this->firm $firm;
        
$this->model $model;
        
$this->year $year;
        
$this->price $price;
        
$this->sellers = array();
    }
}


$oAuto = new Auto("Audi""A6"200878000);
$oAuto->sellers[0] = "Фирма А";
$oAuto->sellers[1] = "Фирма Б";
$oAuto->sellers[2] = "Фирма В";

require_once(
'JSON.php');

$json = new Services_JSON();

$u_text $_POST['text'];
$submit $_POST['decode'];
if(isset(
$submit)) {
  
$kod $u_text;
  
$sJSONText '{"firm":"Audi","model":"A6","year":2008,"price":78000,"sellers":["' $kod '","",""]}';
  
$value $json->decode($sJSONText);
  
$a $value->sellers[0];
}
?>
<html>
<head> 
<meta http-equiv="Content-Type" content="text; charset=UTF-8"> 
<title>Unicode decoder</title> 
</head> 
<bоdу> 
<form method="post"> 
Unicode decoder<br>
Coded text:
<table> 
<tr><td><textarea rows="10" cols="30" name="text"><?php echo $kod;?></textarea></td></tr> 
</table> 
<input type="submit" name="decode" value="Decode" />
<br>Decoded text:
<table> 
<tr><td><textarea rows="10" cols="30"><?php echo $a;?></textarea></td></tr> 
</table> 
</form>
</bоdу> 
</html>

Последний раз редактировалось Pashkela; 19.07.2009 в 18:10..
 
Ответить с цитированием

  #9  
Старый 19.07.2009, 18:28
Solker
Участник форума
Регистрация: 04.05.2006
Сообщений: 161
Провел на форуме:
389768

Репутация: 158
По умолчанию

Вообщем всем спасибо, пока ждал ответа уже накатал простенький скрипт, т.к. переводить мне надо было только в Русскую раскладку.

PHP код:
$array_b_uni = array('\u0410','\u0411','\u0412','\u0413','\u0414','\u0415','\u0416','\u0417','\u0418','\u0419','\u041a','\u041b','\u041c','\u041d','\u041e','\u041f','\u0420','\u0421','\u0422','\u0423','\u0424','\u0425','\u0426','\u0427','\u0428','\u0429','\u042a','\u042b','\u042c','\u042d','\u042e','\u042f');

$array_b_win = array('A','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я');

$array_m_uni = array('\u0430','\u0431','\u0432','\u0433','\u0434','\u0435','\u0436','\u0437','\u0438','\u0439','\u043a','\u043b','\u043c','\u043d','\u043e','\u043f','\u0440','\u0441','\u0442','\u0443','\u0444','\u0445','\u0446','\u0447','\u0448','\u0449','\u044a','\u044b','\u044c','\u044d','\u044e','\u044f');

$array_m_win = array('а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я');

$str str_replace($array_m_uni$array_m_win$str);
$str str_replace($array_b_uni$array_b_win$str); 
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Miranda IM [$iDpack] $iD Soft - Windows 7 27.11.2009 16:27
unicode to text masternet Болталка 13 14.12.2008 16:49
Сборки Miranda IM SK | Heaton ICQ 26 04.12.2008 01:11
CrackMe! by Reject. Reject Реверсинг 22 03.12.2006 01:17
Miranda IM Uzm Pack †Romi4† ICQ 1 10.11.2006 08:15



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ