"\u041d\u0430 \u043c\u043e\u043b\u043e\u0434\u043e\u0433\u043e" Как средствами PHP преобразовать эту строку в обычную кодировку cp1251 например. На выходе должно получится "На молодого" Я посмотрел в мануле, там есть функции для работы с unicode, но они появятся только в 6 версии. А как сделать поддержу в 5, этих функций, я не знаю. Надеюсь на помощь, спасибо.
Вот статья: Code: http://www.linkexchanger.su/2008/41.html вот пример к статье: Code: 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", 2008, 78000); $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 как, например, здесь: Code: http://2cyr.com/decode/?lang=ru PS: В красивый вид приводить и оптимизировать не стал, просто сделал работоспособным. Зашифрованный текст храниться в переменной $kod (меняйте прямо в скрипте)
такая вещь на unicode должна поставляться из коробки. json требует отдельной библиотеки. наверняка существуют еще либы для работы с юникодом в php. но как разработчики дожили до 5 версии своего продукта и не обеспечели поддержку юникода на уровне языка как минимум странно и говорит лишь о том, что php все еще не далеко ушел в своем развитии от первоначальной расшифровки своей абревиатуры.
а вот вам фактически аналог 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", 2008, 78000); $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>
Вообщем всем спасибо, пока ждал ответа уже накатал простенький скрипт, т.к. переводить мне надо было только в Русскую раскладку. 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);