note 68182 added to ref.iconv
| From: | nod at mobi dot kz | Date: | Mon, 17 Jul 2006 14:17:05 +0000 |
| Subject: | note 68182 added to ref.iconv | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-114845@lists.php.net to get a copy of this message | ||
If you need convert string from Windows-1251 to 866. Some characters of 1251 haven't
representation on DOS 866. For example, long dash -- chr(150) will be converted to 0, after that
iconv finish his work and other charactes will be skiped. Problem characters range in win1251
(128-159,163,165-167,169,171-174,177-182,187-190).
Use this:
//$text - input text in windows-1251
//$cout - output text in 866 (cp866, dos ru ascii)
for($i=0;$i<strlen($text);$i++) {
$ord=ord($text[$i]);
if($ord>=192&&$ord<=239) $cout.=chr($ord-64);
elseif($ord>=240&&$ord<=255) $cout.=chr($ord-16);
elseif($ord==168) $cout.=chr(240);
elseif($ord==184) $cout.=chr(241);
elseif($ord==185) $cout.=chr(252);
elseif($ord==150||$ord==151) $cout.=chr(45);
elseif($ord==147||$ord==148||$ord==171||$ord==187) $cout.=chr(34);
elseif($ord>=128&&$ord<=190) $i=$i; //неÑ
пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ
ÑимволÑ
else $cout.=chr($ord);
}
----
Server IP: 66.163.161.117
Probable Submitter: 82.200.245.175
----
X-Spam-Status: No, hits=3.1 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER
autolearn=no version=2.64
----
Manual Page -- http://www.php.net/manual/en/ref.iconv.php
Edit -- http://master.php.net/note/edit/68182
Del: integrated -- http://master.php.net/note/delete/68182/integrated
Del: useless -- http://master.php.net/note/delete/68182/useless
Del: bad code -- http://master.php.net/note/delete/68182/bad+code
Del: spam -- http://master.php.net/note/delete/68182/spam
Del: non-english -- http://master.php.net/note/delete/68182/non-english
Del: in docs -- http://master.php.net/note/delete/68182/in+docs
Del: other reasons-- http://master.php.net/note/delete/68182
Reject -- http://master.php.net/note/reject/68182
Search -- http://master.php.net/manage/user-notes.php