Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизUTF-8 декодирование Найти похожие ветки
← →
Undert © (2004-04-26 12:15) [0]Как обычными примитивами паскалевского языка перекодировать сабж например в Windows-1251 ?
← →
Тимохов © (2004-04-26 12:22) [1]Посмотрите в d6 исходный код функции UTF8Decode в модуле system.
← →
Паниковский © (2004-04-26 12:22) [2]Это API функции могут делать.
Посмтори по справке точное название не помню.
← →
Undert © (2004-04-26 12:27) [3]Хмм... а там примитивами и не пахнет :-)
У меня задача то на php функцию такую сделать ...
← →
Undert © (2004-04-26 12:33) [4]string utf8_decode ( string data)
не совсем устраивает, хочется альтернативы
← →
VMcL © (2004-04-26 12:37) [5]>>Undert © (26.04.04 12:27) [3]
Дык это, в PHP уже есть, вроде:
utf8_decode
(PHP 3>= 3.0.6, PHP 4 )
utf8_decode -- Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1.
Description
string utf8_decode ( string data)
This function decodes data, assumed to be UTF-8 encoded, to ISO-8859-1.
See utf8_encode() for an explaination of UTF-8 encoding.
utf8_encode
(PHP 3>= 3.0.6, PHP 4 )
utf8_encode -- encodes an ISO-8859-1 string to UTF-8
Description
string utf8_encode ( string data)
This function encodes the string data to UTF-8, and returns the encoded version. UTF-8 is a standard mechanism used by Unicode for encoding wide character values into a byte stream. UTF-8 is transparent to plain ASCII characters, is self-synchronized (meaning it is possible for a program to figure out where in the bytestream characters start) and can be used with normal string comparison functions for sorting and such. PHP encodes UTF-8 characters in up to four bytes, like this:
Таблица 1. UTF-8 encoding
bytes
bits
representation
1
7
0bbbbbbb
2
11
110bbbbb 10bbbbbb
3
16
1110bbbb 10bbbbbb 10bbbbbb
4
21
11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
Each b represents a bit that can be used to store character data.
← →
VMcL © (2004-04-26 12:37) [6]>>Undert © (26.04.04 12:33) [4]
Oops, не успел :)
← →
Undert © (2004-04-26 13:11) [7]Типа нашел! Спасибо всем!
function utf8win1251($s) {
$out = "";
$c1 = "";
$byte2 = false;
for ($c=0;$c<strlen($s);$c++) {
$i = ord($s[$c]);
if ($i<=127) $out.=$s[$c];
if ($byte2) {
$new_c2 = ($c1&3)*64+($i&63);
$new_c1 = ($c1>>2)&5;
$new_i = $new_c1*256+$new_c2;
if ($new_i==1025) $out_i=168; else
if ($new_i==1105) $out_i=184; else $out_i=$new_i-848;
$out.=chr($out_i);
$byte2 = false;
}; //if
if (($i>>5)==6) {
$c1 = $i;
$byte2 = true;
}; //if
}; //if
return $out;
}; //func
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c