a little usefull function
<?php
function unicode2utf8($c)
{
$output="";
if($c < 0x80)
{
return chr($c);
}
else if($c < 0x800)
{
return chr( 0xc0 | ($c >> 6) ).chr( 0x80 | ($c & 0x3f) );
}
else if($c < 0x10000)
{
return chr( 0xe0 | ($c >> 12) ).chr( 0x80 | (($c >> 6) & 0x3f) ).chr( 0x80 | ($c & 0x3f) );
}
else if($c < 0x200000)
{
return chr(0xf0 | ($c >> 18)).chr(0x80 | (($c >> 12) & 0x3f)).chr(0x80 | (($c >> 6) & 0x3f)).chr(0x80 | ($c & 0x3f));
}
return false;
}
?>
unicode_encode
(No version information available, might be only in CVS)
unicode_encode — Définit l'encodage d'une chaîne unicode
Description
Prend une chaîne unicode et la convertie en une chaîne dans un encodage spécifié.
Liste de paramètres
- input
-
La chaîne unicode qui va être encodée.
- encoding
-
Le nouvel encodage de input .
- errmode
-
Mode d'erreur de conversion. Ce paramètre détermine l'action à effectuer lorsque le convertisseur n'a pu convertir un caractère. Pour une liste des modes disponibles, référez-vous à la fonction unicode_set_error_mode(). Si ce paramètre n'est pas défini, le mode d'erreur global sera utilisé.
Valeurs de retour
Une chaîne de caractères en cas de succès, ou FALSE si une erreur survient.
Erreurs / Exceptions
Émet une erreur de type E_WARNING si le convertisseur n'a pu être créé pour l'encodage encoding désiré.
Exemples
Exemple #1 Exemple avec unicode_encode()
Note: Les caractères seront visibles au lieu des entités dans l'affichage.
<?php
header ('Content-Type: text/plain; charset=ISO-8859-2');
$encoded = unicode_encode ('\u0150\u0179', 'ISO-8859-2');
echo 'Unicode semantique : ', ini_get ('unicode_semantics'), PHP_EOL;
echo 'La chaîne elle-même :', $encoded, PHP_EOL;
echo 'La longueur de la chaîne : ', strlen ($encoded);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
Unicode semantique : 1 La chaîne elle-même : ŐŹ La longueur de la chaîne : 2
Notes
Cette fonction est EXPERIMENTALE. Cela signifie que le comportement de cette fonction, son nom et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez cette fonction à vos risques et périls.
unicode_encode
14-Dec-2007 02:37
22-Feb-2007 05:45
A PHP4 Version for converting a utf8 string/text to unicode:
function utf8_to_unicode( $str ) {
$unicode = array();
$values = array();
$lookingFor = 1;
for ($i = 0; $i < strlen( $str ); $i++ ) {
$thisValue = ord( $str[ $i ] );
if ( $thisValue < ord('A') ) {
// exclude 0-9
if ($thisValue >= ord('0') && $thisValue <= ord('9')) {
// number
$unicode[] = chr($thisValue);
}
else {
$unicode[] = '%'.dechex($thisValue);
}
} else {
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 );
$number = dechex($number);
$unicode[] = (strlen($number)==3)?"%u0".$number:"%u".$number;
$values = array();
$lookingFor = 1;
} // if
} // if
}
} // for
return implode("",$unicode);
} // utf8_to_unicode
