[spip-dev] utf-8

Coucou,

je fais quelques essais en utf-8 : premières constatations, ça passe bien en
espéranto, mais ni l'hébreu ni l'arabe ne passent bien... bizarrement
certains caractères semblent fonctionner, d'autres pas. Dans la page
d'édition articles_edit.php3, tout est bon (y compris quand on y revient) ,
mais dans la page de rendu (articles.php3) ça ne passe pas, pas plus que
dans les pages publiques.

Si quelqu'un a une idée... la base semble contenir ce qu'il faut, mais je ne
sais pas trop comment regarder. Est-ce que propre() pourrait entrer en
conflit avec certains caracteres utf-8 ?

-- Fil

certains caractères semblent fonctionner, d'autres pas. Dans la page
d'édition articles_edit.php3, tout est bon (y compris quand on y revient) ,
mais dans la page de rendu (articles.php3) ça ne passe pas, pas plus que
dans les pages publiques.

A regarder d'un peu plus pres : si je desactive la fonction typo(), les
caracteres passent plus facilement (une histoire de ? parasites...), mais il
semble que, en plus, 'il me manque encore les indications de script
d'ecriture de la droite vers la gauche... c'est pas encore ce soir qu'on va
spiper en utf-8 !

-- Fil

Hello,
Quelqu'un a déja tenté d'installer SPIP sur un CUBE Cobalt ?
(http://fr.sun.com/produits-solutions/materiels/appliances/qube3.html)

Merci d'avance
-dp-

Bon, sur le Mac (TextEdit) j'enregistre mon texte au format texte/utf-8, et
j'obtiens :

fil@alpha~/Desktop> hexdump test2.txt
0000000 0aef baad efba 8eef bbb4 efbb 94ef bbb3
0000010 efba ad20 efba 90ef bbb4 efbb a0ef bbb4
0000020 efbb 930a 5048 494c 4950 5045 2052 4956
0000030 4945 5245 0a00

Le même texte, entré dans SPIP, puis lu en sql > fichier donne :
fil@miel> hexdump test.result
0000000 6574 7478 0a65 5c0d ef6e adba baef ef8e
0000010 27bb bbef ef22 b3bb baef 20ad baef ef90
0000020 27bb bbef efa0 27bb bbef 0d22 6e5c 5c0d
0000030 506e 4948 494c 5050 2045 4952 4956 5245
0000040 0d45 6e5c 000a

Comme vous êtes perspicaces, vous remarquez tout de suite que ce sont les
mêmes caractères, mais posés à l'envers (2045 en bas correspond à ..45 20..
en haut) ; si quelqu'un peut m'expliquer de quoi il retourne ?? J'ai
dépassé mes limites de compétence là :wink:

-- Fil

@ François G-Hamonno <fhamonno@club-internet.fr> :

Explication possible :
Il semble que le dump ne lise pas les octets de la même manière sur les 2 machines :
- Mots de 16 bits lus à partir des poids faibles (processeur Intel)

Sur le serveur de tests

- Mots de 16 bits lus à partir des poids forts (processeur Motorola)

Sur le Mac. CQFD. Merci !

-- Fil

Bon, sur le Mac (TextEdit) j'enregistre mon texte au format texte/utf-8, et
j'obtiens :

fil@alpha~/Desktop> hexdump test2.txt
0000000 0aef baad efba 8eef bbb4 efbb 94ef bbb3
0000010 efba ad20 efba 90ef bbb4 efbb a0ef bbb4
0000020 efbb 930a 5048 494c 4950 5045 2052 4956
0000030 4945 5245 0a00

Le même texte, entré dans SPIP, puis lu en sql > fichier donne :
fil@miel> hexdump test.result
0000000 6574 7478 0a65 5c0d ef6e adba baef ef8e
0000010 27bb bbef ef22 b3bb baef 20ad baef ef90
0000020 27bb bbef efa0 27bb bbef 0d22 6e5c 5c0d
0000030 506e 4948 494c 5050 2045 4952 4956 5245
0000040 0d45 6e5c 000a

Comme vous êtes perspicaces, vous remarquez tout de suite que ce sont les
mêmes caractères,

T'as fumé ?? Les fichiers n'ont même pas la même taille !

T'as fumé ?? Les fichiers n'ont même pas la même taille !

Oh l'autre ! MySQL rajoute le nom du champ comme première ligne du fichier.
:wink:

-- Fil

Ben il reste :

0aef baad efba 8eef bbb4 efbb 94ef bbb3
efba ad20 efba 90ef bbb4 efbb a0ef bbb4
efbb 930a 5048 494c 4950 5045 2052 4956
4945 5245 0a00

ef6e adba baef ef8e
27bb bbef ef22 b3bb baef 20ad baef ef90
27bb bbef efa0 27bb bbef 0d22 6e5c 5c0d
506e 4948 494c 5050 2045 4952 4956 5245
0d45 6e5c 000a

D'ailleurs les dernières valeurs sont
différentes aussi.

Non ?

Coucou,

je fais quelques essais en utf-8 : premières constatations, ça passe bien

en

Salut,

2) MySQL 3 ne supporte pas de façon correcte l'unicode, il faudra attendre
la 4.1 qui le gèrera en natif. Il existe des patch pour Mysql 3 (faire une
recherche sur www.i18ngurus.com)

Ca ne concerne que les fonctions de traitement de chaînes (LIKE,
CONCAT...) qui ne sont pratiquement pas utilisées dans SPIP.

Quant à PHP, c'est vrai que c'est rapé :wink:

a+

Antoine.

Salut,

2) MySQL 3 ne supporte pas de façon correcte l'unicode, il faudra attendre
la 4.1 qui le gèrera en natif. Il existe des patch pour Mysql 3 (faire une
recherche sur www.i18ngurus.com)

Ca ne concerne que les fonctions de traitement de chaînes (LIKE,
CONCAT...) qui ne sont pratiquement pas utilisées dans SPIP.

Ainsi que les tris et les index sur des champs texte encodés en utf.

Quant à PHP, c'est vrai que c'est rapé :wink:

Certaines fonctions marchent, il faut rajouter le charset en paramètre
optionel je crois.