Tag: google chrome extension

带有chrome扩展名的Java本机消息传递 – 无法正确写入长度

我目前正在编写一个与Chrome扩展程序通信的Java程序。 我需要实现Chrome本机消息传递协议才能进行通信。 Google Chrome文档说: …每条消息都使用JSON,UTF-8编码进行序列化,并以本机字节顺序开头的32位消息长度。 ( 来源 ) 我试图用Java实现这个,但是当我的消息有一定的长度时我会遇到问题,即使我的实现应该是正确的。 这是我当前的实现,基于早期的SO-answers和问题(例如这里 ): // read the message size from Chrome. This part works correctly. public static int getInt(char[] bytes) { return (bytes[3]<<24) & 0xff000000| (bytes[2]<<16) & 0x00ff0000| (bytes[1]<< 8) & 0x0000ff00| (bytes[0]<>8) & 0xFF), (char) ((length>>16) & 0xFF), (char) ((length>>24) & 0xFF)); } 似乎问题在于java实现chars的方式。 我期待正常的字符,就像在C中一样。在实践中,似乎Java有时会将这些字符转换为unicode-chars(至少,到目前为止,这是我的怀疑)。 这反映在以下输出(通过管道传输到xxd以显示实际字节)中,来自java程序的长度为2269: 0000000: […]