2010-01-04 27 views
1

Je travaille sur une application Flex qui a une base de données MySQL. Les données sont récupérées à partir de la base de données en utilisant PHP puis j'utilise AMFPHP pour transmettre les données à FlexCaractères spéciaux dans Flex

Le problème que j'ai est que les données sont copiées à partir de documents Word qui entraînent parfois certains des caractères les plus inhabituels ne s'affichent pas correctement. Par exemple, Word utilise différents caractères pour le démarrage et la fin des guillemets doubles au lieu de seulement " (les guillemets doubles standard) Un autre exemple est le trait long au lieu de -..

Tous ces caractères se traduisent par un ou Plus de caractères accentués A des caractères apparaissant à la place Non seulement cela, chaque fois que le document est sauvegardé, les caractères sont remplacés, ce qui entraîne l'apparition d'un nombre toujours croissant de caractères accentués A.

Effectuer une recherche et un remplacement pour chaque caractère gênant l'échanger pour l'un des caractères aucun semble fonctionner, mais évidemment cela nécessite de compiler une liste de tous les caractères qui peuvent apparaître et signifie Il est possible que cela continue, car de nouveaux caractères sont utilisés pour la première fois. Cela semble aussi être un moyen de contourner le problème plutôt qu'une solution appropriée.

Est-ce que quelqu'un sait ce qui cause cela et a de bonnes solutions de contournement? J'ai rencontré des problèmes similaires lors de l'utilisation de caractères utf-8 dans des documents html qui ne sont pas configurés pour utiliser utf-8. Est-ce la même chose et si oui, comment est-ce que je peux utiliser flex utf-8?

Un grand merci

Adam

Répondre

2

Il est la même chose, et des citations intelligentes ne sont pas particuliers en tant que tel: vous en fait défaut pour tous les caractères non-ASCII. Un tel remplacement ad-hoc trivial pour les caractères de guillemets intelligents sera inutile. À un certain point, quelqu'un est en train de décoder une séquence d'octets comme ISO-8859-1 ou la page de code Windows 1252 alors qu'elle aurait dû être UTF-8. Difficile de dire où sans détail/code.

Qu'est-ce que c'est «le document»? De quel format s'agit-il? Ce format prend-il en charge le contenu UTF-8? Si ce n'est pas le cas, vous devrez encoder la sortie que vous y avez mise lors de la phase de création du document selon l'encodage attendu par le consommateur de ce document, par exemple. en utilisant iconv.

+0

Merci beaucoup. J'avais déjà vérifié que tous les endroits évidents auxquels je pouvais penser étaient prêts à utiliser Utf-8, mais stimulés par votre confirmation que c'était définitivement un problème d'encodage, j'ai creusé plus profondément et j'ai trouvé que l'AMFPHP était en train de tout reconvertir en ISO-8859- 1. Je l'ai pris et maintenant tout semble fonctionner très bien. Merci encore !! – Addsy