Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Unicode на PHP

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Unicode на PHP
Имя
Сообщение << Старые топики   Новые топики >>
Unicode на PHP - 2005-06-01 04:24:42   
AL

Сообщений: 515
Оценки: 0
Присоединился: 2004-07-19 03:19:44
В общем в JS есть вариант перекодировки вводимых данных в unicode. Вот он:
#########################################################################################
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windоws-1251">
</head>
<body>
<Sсгiрt language="JavaSсгiрt">
<!–
function EmailCode()
{
email=dосиmеnt.qw.dos221.value;
if (email != "") {
ecd = "";
for (i = 0; i < email.length; i++) {
ecd += "&#" + String(email.charCodeAt(i)) + ";";
//ecd += "\&amp;amp;#" + String(email.charCodeAt(i)) + ";";
};
dосиmеnt.qw.dos222.value = ecd
};
};
//–>
</Sсгiрt>
<form name="qw">
<table border="0" cellpadding="3" cellspacing="0" width="100%">
<tr>
<td align="center"><b>Текст</b></td>
<td align="center"><b>Unicode</b></td>
</tr>
<tr>
<td><textarea rows="25" name="dos221" cols="50"></textarea></td>
<td><textarea rows="25" name="dos222" cols="50"></textarea></td>
</tr>
<tr>
<td colspan="2">
<input type="button" name="button1" value="Закодировать" опс1iск="EmailCode()">
</td>
</tr>
</table>
</form>
</body>
</html>
########################################################################################
Так вот, Схема работы этого кода проста, вводим какие-то данные полчаем их же в unicode. Это без проблем можно было бы запихать в РНР-скрипт, да вот только тут есть одна проблемка. JS выполняется на стороне пользователя, что не есть гуд.
Мне надо этот же результат но на чистом PHP. Писать перекодировщик для каждого возможного символа - глупо и нереально.
Кто в курсе есть такая стандартная функция в PHP? На оф.сайте ничего не нашёл. Есть всё, что угодно, UTF в ISO-8859-1, кодировщики в MD5, base64, короче всего море, но то, что нужно, как раз того и нет. Короче говоря HELP!!![:pray:]
[sm=13.gif]
Post #: 1
Unicode на PHP - 2005-06-01 14:35:15   
AL

Сообщений: 515
Оценки: 0
Присоединился: 2004-07-19 03:19:44
Ну чё, никто не в курсе???[sm=go139.gif]
Post #: 2
Unicode на PHP - 2005-06-01 20:40:09   
AL

Сообщений: 515
Оценки: 0
Присоединился: 2004-07-19 03:19:44
н-да……[sm=go139.gif]
Post #: 3
Unicode на PHP - 2005-06-03 04:19:17   
AL

Сообщений: 515
Оценки: 0
Присоединился: 2004-07-19 03:19:44
Lex, Jenizix, где вы??? Вы хоть чё-нить напишите….. Вообще есть такая фишка в PHP? Или придётся в ручную писать?[sm=go139.gif]
Post #: 4
Unicode на PHP - 2005-06-05 10:21:37   
ventilyator

Сообщений: 423
Оценки: 0
Присоединился: 2004-10-28 15:46:45
есть в пхп-5 такая функцыя iconv()…
если пхп 4-й, то http://www.vanta.ru/Sсгiрt/info.php?id=32&clas=0
а ваще по этой теме, как я видал, в инете дофига валяица

ПС
function win3utf($s) {
$t = '';
for($i=0, $m=strlen($s); $i<$m; $i++) {
$c=ord($s[$i]);
if ($c<=127) {$t.=chr($c); continue; }
if ($c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue; }
if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; }
if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; }
if ($c==184) { $t.=chr(209).chr(209); continue; };
if ($c==168) { $t.=chr(208).chr(129); continue; };
}
return $t;
}

во мля - из вынь в утф
Post #: 5
Unicode на PHP - 2005-06-05 17:23:07   
AL

Сообщений: 515
Оценки: 0
Присоединился: 2004-07-19 03:19:44
ventilyatorТы сам-то эту функцию пробовал в браузер вывести или просто с мануала скопировал? Это пример с оф. сайта PHP!!! Если бы в мануале была рабочая функция, я бы не задавал подобных вопросов….
Можешь даже не пытаться, я тебе и так скажу чё она выводит. Если взять и через неё перегнать слово unicode и юникод (английский и русский вариант слов), то в случае с английскими буквами функция вернёт такой вариант:
unicode То есть не работает вообще!!!
Русский вариант функция перекодирует так:
Р&#1029;РёР&#1108;Р&#1109;РЭ Это, как ты понимаешь даже близко не юникод, это больше похоже на какую-то кодировку при не той же установленной в браузере.
Так что увы… Функция неработоспособна.[sm=go139.gif]
Post #: 6
Unicode на PHP - 2005-06-07 15:40:43   
ventilyator

Сообщений: 423
Оценки: 0
Присоединился: 2004-10-28 15:46:45
хм.. у меня на фре есть системная iconv
я все время ей декодирую ваще-то… оч. удобно
Post #: 7
Unicode на PHP - 2005-06-07 17:04:52   
AL

Сообщений: 515
Оценки: 0
Присоединился: 2004-07-19 03:19:44
ventilyator, всё, нашёл я уже что надо и даже лудше.
А про перекодировщик, правда только для кирилицы у меня получился такой:
<BR>function win_utf8 ($string) {<BR>$string = convert_cyr_string($string, &quot;w&quot;, &quot;i&quot;);<BR>$stringout = &quot;&quot;;<BR>for ($i=0; $i&lt;strlen($string); $i++) <BR> {<BR> $char = ord($string[$i]);<BR> $stringout .= ($char&gt;175)?&quot;&amp;#&quot;.(1040+($char-176)).&quot;;&quot;:$string[$i];<BR>}<BR>return $stringout;<BR>}<BR>
Но он ни с английской раскладкой не работает, только русская!. Так что не катит, хотя, [sm=sm128.gif] может когда-нить и пригодится.
А нашёл я обалденный фильтр, [sm=em121.gif]!!! Режет всё насвете, при чём в нём, плюс ко всему прописаны ещё и особенности, наверно всех web-языков, начиная от банального HTML и заканчивая XML. То есть на выходе получаешь чистый текст - ни одного тега или спец-символа или чего-то в этом духе.
Так что тему можно считать закрытой, ибо результат достигнут.
Тебе лично :[sm=sm203.gif][sm=sm203.gif][sm=sm203.gif]
[sm=go139.gif]
Post #: 8
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Unicode на PHP







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.