我正在编写服务器 - 客户端项目。服务器端是用Java开发的,客户端用Python开发的。最近,当我尝试在套接字上发送一个字符串时,服务器获取它的空格。假设我发送:
1:user:password
在服务器端我使用字符串拆分将这一个字符串转换为3,第一个字符串(在本例中为“1”)将告诉服务器如何处理其余字符串(用户名和密码)。现在的问题是,当我从服务器端的套接字打印出来的内容时,我会得到类似的结果:
1 : u s e r : p a s s w o r d
每个角色之间都有空格。我尝试使用字符串函数replaceAll("\\s","")
和replaceAll("\\s+","")
但它们似乎不起作用。我用replaceAll("\\S","k")
使用了大写S,并意识到它实际上向我展示了:
kkkkkkkkkkkkkkkkkkkkkkkkkkkkk
所以我得出结论,那些“白色空间”并不是真正的白色空间,因为\\S
取代了“不是空格字符的任何东西(包括字母和数字,以及标点符号)等等)”。
我的问题是:那些空白是什么,我怎么能摆脱它们呢?
提前致谢。对不起,很长的帖子。
答案 0 :(得分:6)
你最有可能发送UTF-16(可能是UTF-16LE),但是将其解码为UTF-8。 “空格”实际上是空值(零字节)。您需要在客户端和服务器上使用相同的字符编码。