st 编码格式是"UTF-8".
而stt编码格式不是。
对stt做如下处理就可以了。
stt = new String("借阅".getBytes("ISO-8859-1"),"UTF-8");
如果程序文件默认编码格式是"GBK",就用GBK替换ISO-8859-1
总之要让两个变量完全一致,才能equals True
问题原因:应该是你的程序文件编码格式不是UTF-8。申明的变更也不是UTF-8。对其他字符转化成UTF-8,就出现同值不equals问题。
trim()下看看
String st=new String(request.getParameter("st").getBytes("ISO-8859-1"));
String stt="借阅";boolean bo=(st.equals(stt));
String st=new String(request.getParameter("st").getBytes("ISO-8859-1").trim());
String stt="借阅";boolean bo=(st.equals(stt));
与编码没关系..
你要确定你的这句:
String st=new String(request.getParameter("st").getBytes("ISO-8859-1"),"UTF-8");
得出来的值是"借阅",中间和旁边没有空格或者乱码.
建议你把值打印出来或者通过调试的方式观察其在内存中的情况.
String st=new String(request.getParameter("st").getBytes("UTF-8"),"UTF-8");
这个的字符集修改成一样就可以了。
不用客气!
.getBytes("ISO-8859-1"),"UTF-8" 删掉