相同功能显示不同的结果

时间:2014-04-09 08:48:42

标签: java java-ee servlets

我试图通过桌面应用程序中的以下功能来加密数据:

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/

可能是什么原因?请帮忙。

1 个答案:

答案 0 :(得分:2)

原因很可能是桌面和Web应用程序使用不同的字符编码。

这就是为什么在某些编码下,值会呈现一个字符,而在另一些字符中则表示不同的字符。