2009-04-10 11 views
2

J'essaye d'envoyer quelque chose au port série (r232) avec PHP. J'utilise cette classe: http://www.phpclasses.org/browse/package/3679.htmlCaractère non ASCII en PHP?

Le problème est que je suis autorisé à envoyer seulement 1 octet. Mais si j'envoie quelque chose comme "1", j'envoie en fait 49 (ASCII pour 1). Au lieu de send ("1"), j'ai essayé avec send (1) mais ce n'est pas bon, car c'est un entier qui a 2 octets. Y a-t-il un moyen d'envoyer un "vrai" caractère, pas un équivalent ASCII?

+0

J'ai l'impression que PHP n'est peut-être pas le meilleur langage pour ça, j'ai fait quelques recherches et je n'ai rien trouvé. – Ross

+0

Il n'y a pas de "vrai caractère". Les ordinateurs ne comprennent que 0 et 1, pas "A", "B" ou "C". (S'il vous plaît lire la première partie de [Joel Spolsky sympa mais trop long article Unicode] (http://www.joelonsoftware.com/articles/Unicode.html) .Il va expliquer les jeux de caractères dans les moindres détails.) –

Répondre

4

La fonction renvoie un caractère donné par l'entier pour le caractère ascii correspondant.

+0

Il renvoie un caractère, mais en tant que chaîne PHP. Cela n'aidera pas l'OP –

+0

La bibliothèque n'accepte-t-elle pas une chaîne PHP? Il le passe en fwrite ... – Mark

+0

Pour être plus précis: 'chr' transforme un entier en octet. – Gumbo

0

Il semble que la bibliothèque attend des caractères en entrée. Si vous avez besoin d'envoyer le caractère qui code pour 0x01, envoyez simplement "\ 001". La fonction chr() convertirait les caractères en valeurs entières et ne servirait à rien ici. Une autre chose: La taille en octets des entiers dépend du système sous-jacent et est principalement de 4 octets.

+0

Pas si. ord() convertit les caractères en valeurs entières, et chr() fait le contraire. – Mark

0

Je ne suis pas sûr de ce que vous essayez d'accomplir. Essayez-vous d'envoyer l'entier 1? N'étant pas familier avec la classe, avez-vous essayé de donner juste la valeur 1 comme argument? Si cela ne fonctionne pas, essayez de l'envelopper avec la fonction chr().

Questions connexes