Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
bonjour,
voilà je travaille sur une application multilingue utilisant des caractères hébreux, le problème est que quand je les récupère, php m'affiche des points d'interrogation au lieu du texte demandé..
je ne sais pas quoi faire, j'ai mis un codage "hebrew" dans le champ concerné, et sous phpmyadmin, pas de pb, il m'affiche bien le texte mais si veux moi-même le récupérer à partir de la base je n'y arrive pas...
j'ai entendu dire que PHP était assez nul pour la gestion de caractères..
Dernière modification par eliyo (08-11-2007 18:29:43)
Hors ligne
Salut,
J'ai eu le même problème avec des caractères japonais. J'ai résolu le problème en définisant mes tables et mes champs de données non numérique en utf8-bin. Pour mes pages j'ai ceci dans mes metas :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Depuis tout passe bien. Je pense que ça devrait le faire aussi pour de l'hebreu.
Hors ligne
merci pour le coup de main, ça marche avec l'encodage de la bdd dans le bon format (et aussi il faut que le champ ne soit pas de type VARCHAR par ex, mais bien VARBINARY)
maintenant mon pb est que le sens d'écriture n'est pas respecté...
comment inverser ?
Dernière modification par eliyo (12-11-2007 11:10:20)
Hors ligne
pour être exact si, parce que bien entendu l'affichage est correct dans le navigateur, mais mon souci est que j'utilise une fonction de génération d'image, et c'est dans l'image que le texte s'affiche à l'envers..
si vous essayiez de mettre du japonais dans une image je serais curieux de savoir si le sens du texte est respcté !
Hors ligne
eh bien en fait j'y ai aussi pensé et j'ai tout essayé mais c'est aussi une impasse :
un mot hébreu de 7 lettres est codé en plus de caractères... à cause des voyelles, à cause de signes d'accentuation etc..
de plus, les fonctions de génération de texte dans l'image codent en séquences, et je me retrouve avec une lettre suivie d'une voyelle, suivie d'un sgne d'accentuation, alors qu'en hébreu les voyelles se trouvent sous les lettres, et les signes d'accentuation à l'intérieur ! donc les programmeurs n'y ont manifestement pas pensé..
aussi, écrire à l'envers non seulement ne sert pas à grand chose, mais génére en plus des caractères incompréhensibles.
et je suis aussi passé par iconv() mais peine perdue.
en conséquence je dois dire à ceux qui passent par là que pour mon pb précis il n'y a pas de solution en php pour le moment. sauf si vous bidouiller le module gd pour images et que vous permettez que l'hébreu passe mieux mais c'est du boulot qui demande bcp de temps et un niveau qui n'est pas à la portée de tous.
pour ma part je suis passé à une solution de triche, elle consiste à faire croire à l'utilisateur qu'il a une image devant lui, et de mon côté je profite toujours de la bdd :
en effet, un calque (<div> par ex) avec un background couleur ou image (que si vous avez envie vous pouvez par contre générer avec php ce coup-ci) ainsi que des bordures (ou non) de votre choix, un contenu en alphabet hébreu (et cette fois-i pas de pb d'écriture puisque le jeu de caractères est géré par le navigateur), encore un peu de css pour transformer le cuseur au besoin quand la souris passe dessus, éventuellement un peu de javascript, et le tour est joué !
et le texte hébreu peut toujours être stocké et traité en bdd, puisque encore une fois, quand il est récupéré ce ne sera pas php qui s'occupera de l'afficher mais le navigateur avec un bon jeu de caractères.
Hors ligne