我怎样才能摆脱"白色空间"

map*_*l93 1 python java sockets string whitespace

我正在编写服务器客户端项目.服务器端是用Java开发的,客户端用Python开发的.最近,当我尝试在套接字上发送一个字符串时,服务器获取它的空格.假设我发送:

1:user:password
Run Code Online (Sandbox Code Playgroud)

在服务器端我使用字符串拆分将这一个字符串转换为3,第一个字符串(在本例中为"1")将告诉服务器如何处理其余字符串(用户名和密码).现在的问题是,当我从服务器端的套接字打印出来的内容时,我会得到类似这样的内容:

1 : u s e r : p a s s w o r d 
Run Code Online (Sandbox Code Playgroud)

每个角色之间都有空格.我试图使用String函数replaceAll("\\s",""),replaceAll("\\s+","")但它们似乎没有用.我replaceAll("\\S","k")和大写S一起使用,并意识到它实际上向我展示了:

kkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Run Code Online (Sandbox Code Playgroud)

所以我得出结论,那些"白色空间"并不是真正的白色空间,因为它\\S取代了"任何不是空格的东西(包括字母和数字,以及标点符号等)".

我的问题是:那些空白是什么,我怎么能摆脱它们呢?

提前致谢.对不起,很长的帖子.

hob*_*bbs 6

你最有可能发送UTF-16(可能是UTF-16LE),但将其解码为UTF-8."空格"实际上是空值(零字节).您需要在客户端和服务器上使用相同的字符编码.