【发布时间】:2014-01-23 12:18:58
【问题描述】:
我正在编写服务器-客户端项目。服务器端使用 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 替换了“任何不是空格字符(包括字母和数字,以及标点符号等) ”。
我的问题是:这些空白是什么,我怎样才能摆脱它们?
提前致谢。对不起,很长的帖子。
【问题讨论】:
-
显示客户端写入套接字和服务器从套接字读取的代码?
-
我认为,首先,您应该找出您真正通过套接字传输的数据,带空格或不带空格的字符串。如果 python 客户端只发送 ascii 非空白字符,那么你的 java 服务器一定有问题。
-
我在发送之前打印我要发送的字符串,一切正常,没有空格。
标签: java python string sockets whitespace