2009-04-10 153 views
2

我想用PHP发送一些东西到串口(r232)。 我正在使用这类:http://www.phpclasses.org/browse/package/3679.htmlPHP中的非ASCII字符?

问题是,我被允许发送只有1个字节。 但是,如果我发送类似“1”的东西,我实际上发送49(ASCII为1)。 而不是发送(“1”),我试着发送(1),但它不好,因为这是有2个字节的整数。 那么有没有办法发送一个“真正的”字符,而不是ASCII码?

+0

我感觉PHP可能不是最好的语言,我做了一点研究,并没有提出任何建议。 – Ross 2009-04-10 21:16:43

+0

没有“真实人物”。计算机只理解0和1,而不是“A”,“B”或“C”。 (请阅读Joel Spolskys的第一部分,但是太长的Unicode文章](http://www.joelonsoftware.com/articles/Unicode.html)。它将详细解释字符集。) – 2009-04-11 14:51:27

回答

4

函数返回由相应的ascii字符的整数给出的字符。

+0

它返回一个字符,但是作为PHP字符串。这不会帮助OP – 2009-04-10 21:53:01

0

它看起来像库期待字符作为输入。如果您需要将要编码的字符发送到0x01,您只需发送“\ 001”。函数chr(​​)会将字符转换为整数值,在这里没用。

还有一件事:整数的字节大小取决于底层系统,大部分是4个字节。

0

我不确定你想要完成什么。你想发送整数1吗?不熟悉课堂,你是否试图给出值1作为参数?如果这不起作用,请尝试使用chr()函数进行包装。