我试图通过桌面应用程序中的以下功能来加密数据:
public String[] binaryToText(String[] binary1,int lengthofshares)
{
String[] encrptedfinally=new String[lengthofshares];
for(int tt=0;tt<lengthofshares;tt++){
String ss2="";
String ss=binary1[tt];
char mynextChar;
for(int i = 0; i < ss.length(); i += 8) //this is a little tricky. we want [0, 7], [9, 16], etc
{
System.out.print(Integer.parseInt(ss.substring(i, i+8), 2)+",");
mynextChar = (char)Integer.parseInt(ss.substring(i, i+8), 2);
System.out.println(mynextChar);
ss2 += mynextChar;
}
encrptedfinally[tt]=ss2;
}
return encrptedfinally;
}
但是当我在Web应用程序中使用相同的函数时,它会给出不同的结果.integer.parseInt语句返回相同的值,但是它被替换的字符会被更改。
在网络应用程序中,某些职位被问号'?'
取代Web应用程序pic,其中每一行对应于整数,然后将其字符转换为:http://postimg.org/image/ydn9h9nsf/
在桌面应用程序中,值为:
http://postimg.org/image/ww88p3ot5/
可能是什么原因?请帮忙。
答案 0 :(得分:2)
原因很可能是桌面和Web应用程序使用不同的字符编码。
这就是为什么在某些编码下,值会呈现一个字符,而在另一些字符中则表示不同的字符。