Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

UTF-8 encode za evropske jezike

[es] :: PHP :: UTF-8 encode za evropske jezike

[ Pregleda: 2627 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

agvozden
Aleksandar Gvozden
founder
Info-G
Beograd

Član broj: 37813
Poruke: 1123
..njuel-bg.customer.sbb.co.yu.

Sajt: www.gvozden.info


+68 Profil

icon UTF-8 encode za evropske jezike05.01.2006. u 19:23 - pre 222 meseci
Deo za unos teksta je utf-8, takav je i deo za citanje
medjutim, zbog nekih drugih stvari imam potrebu da u bazu budu upisani kodovi (&#xxx) a ne karakteri ć,č.
To se odnosi kako na nasa slova, tako i ostala evropska (spanski, nemacki...)

Jel postoji neka funkcija koja forsira ovakav upis za karaktere preko 127?
Sve sto sam probao do sada ne daje rezultate.
Kada recimo postavim stranicu za unos na iso-8859-1 php zameni dobar deo znakova, ali te i š i đ

recimo:
Code:

   function char_ASCII($input)
   {
      for ($i=0; $i<strlen($input); $i++)
      {
        $test = substr($input, $i, 1);
        $chr = ord($test);
        if ($chr>127)
         $out.= "&#".$chr;
        else
         $out.= $test;
      }
     return $out;
   }

ne daje dobre rezultate


[Ovu poruku je menjao boccio dana 17.01.2006. u 13:21 GMT+1]
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: UTF-8 encode za evropske jezike05.01.2006. u 22:41 - pre 222 meseci
PHP ima funkciju htmlentitzencode ili tako nesto...
 
Odgovor na temu

agvozden
Aleksandar Gvozden
founder
Info-G
Beograd

Član broj: 37813
Poruke: 1123
..njuel-bg.customer.sbb.co.yu.

Sajt: www.gvozden.info


+68 Profil

icon Re: UTF-8 encode za evropske jezike10.01.2006. u 19:23 - pre 222 meseci
Nakon dugog lutanja nasao sam resenje
Code:

<?php
function utf8_to_unicode( &$str ) {

    $values = array();
    $lookingFor = 1;

    for ($i = 0; $i < strlen( $str ); $i++ ) {
      $thisValue = ord( $str[ $i ] );
      if ( $thisValue < 128 ) $unicode.= $str[ $i ];  
      else {
        if ( count( $values ) == 0 ) $lookingFor = ( $thisValue < 224 ) ? 2 : 3;
        $values[] = $thisValue;
        if ( count( $values ) == $lookingFor ) {
    $number = ( $lookingFor == 3 ) ?
      ( ( $values[0] % 16 ) * 4096 ) + ( ( $values[1] % 64 ) * 64 ) + ( $values[2] % 64 ):
        ( ( $values[0] % 32 ) * 64 ) + ( $values[1] % 64 );
    $unicode.= "&#".$number.";";
    $values = array();
    $lookingFor = 1;
        }
      }
    }
    return $unicode;
}
?>

E, sad tu moze biti problem brzina, ali ovo radi posao.
Jedino ako neko zna bolje resenje


[Ovu poruku je menjao boccio dana 17.01.2006. u 13:21 GMT+1]
 
Odgovor na temu

[es] :: PHP :: UTF-8 encode za evropske jezike

[ Pregleda: 2627 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.