Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.083 c
3-1082098026
чайник_
2004-04-16 10:47
2004.05.16
Обновление DBGrid автоматом


14-1082899941
Piter
2004-04-25 17:32
2004.05.16
Wine


1-1083221961
Tex
2004-04-29 10:59
2004.05.16
Преобразование quoted string в control string


14-1082681741
alexandri
2004-04-23 04:55
2004.05.16
Такие вот дела ....


4-1080814731
LKan
2004-04-01 14:18
2004.05.16
Rar