我有一个运行的web服务和Android设备从中读取数据。我要发送的数据被服务器大幅削减,以避免黑客攻击。一旦逃脱,它就会被保存到数据库中。
但是当我再次阅读这些数据时,它会像这样返回: “Baba O \'Riley”而不是“Baba O'Riley”。
我觉得它非常“正确”,我要做的就是用PHP中的Stripslashes函数清理我得到的反斜杠字符串。
http://es1.php.net/manual/es/function.stripslashes.php
但是,我找不到任何在Java中执行此操作的功能。
有什么想法吗?
答案 0 :(得分:4)
您可以使用字符串.replace()功能。请参阅String replace a Backslash和How to replace backward slash to forward slash using java?
String replacedStr = stringname.replace("\\", "");
答案 1 :(得分:0)
我很难找到一个真正合适的Java函数,但这至少比目前接受的答案要好:
String replacedStr = stringname.replace("\\\\", "!~!").replace("\\", "").replace("!~!", "\\");
(用一些不太可能出现在字符串中的字符序列替换!〜!)
此方法的工作原理是将双反斜杠替换为一个非常罕见的标记以便安全保存,剥离所有反斜杠,然后将不常见的标记更改回单个反斜杠。它比PHP使用的状态机慢,因为它会传三次,但这不太可能产生明显的差异。
答案 2 :(得分:-1)
\n,\r, \t,\v,\f,\e....
处理JAVA功能上面列出的字符时
String replacedStr = stringname.replace("\\", "");
不同