Skip to main content
 首页 » 编程设计

java之我怎样才能摆脱 "white spaces"

2025年05月04日25xing901022

我正在编写服务器-客户端项目。服务器端用 Java 开发,客户端用 Python 开发。最近,当我尝试通过套接字发送一个字符串时,服务器得到的字符串中有空格。假设我发送:

1:user:password 

在服务器端,我使用字符串拆分将这个字符串转换为 3,第一个字符串(在本例中为“1”)将告诉服务器如何处理其余字符串(用户名和密码)。现在的问题是,当我打印从服务器端的套接字获得的内容时,我得到如下信息:

1 : u s e r : p a s s w o r d  

每个字符之间都有空格。我尝试使用字符串函数 replaceAll("\\s","") 和 replaceAll("\\s+","") 但它们似乎没有上类。我使用了带有大写字母 S 的 replaceAll("\\S","k"),并意识到它实际上向我展示了:

kkkkkkkkkkkkkkkkkkkkkkkkkkkkk 

所以我得出结论,那些“空白”并不是真正的空白,因为 \\S 替换了“任何不是空格字符的内容(包括字母和数字) ,以及标点符号等)”。

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

提前致谢。很抱歉这篇文章很长。

请您参考如下方法:

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