我在使用开源的JXL 出EXCEL报表时遇到这样的问题。
我想出的文件名称是这样的:例:test_李强.xls 
代码是 ....test_+"UserID"+".xls";
但是控制台我看到的输出名称效果是:test_µ¥°¶·ï .xls
不知道为啥?
  UserID 是这样取到的
  String UserID = request.getParameter("UserID");
然后我用 System.out.println(UserID);
控制台输出的是这样的:??°?·?
目前我不清楚UserID传过来之前的编码格式 会不会就是因为 传来过得格式对我这边有影响
所以我下面用到的 编码转换的语句不起作用?
代码语句是这样的
String filename = new String(UserID.getBytes("GBK"),"gb2312");
但是System.out.println(filename );这样输出的还是:??°?·?
这里有个问题,UserID.getBytes("GBK"), 这个GBK是代表的什么含义?  后面的gb2312是我要变换的格式吗?我是从htm 通过javaScript 跳转到 这个jsp 文件中 完成报表输出
htm 的 charset="gb2312"
在myecplise 下项目的编码格式 默认为 GBK ,操作系统为 windows xp 中文版 另外我在网页中也试了一下
String UserID =“李强”;
String filename = new String(UserID.getBytes("GBK"),"gb2312");System.out.println(filename ); 
这样出来的效果是可以的 ;
而且 想输出的 test_李强.xls 也输出成功了:
请各位朋友帮忙 提些宝贵建议!搞不懂啊! 

解决方案 »

  1.   

    页面传参数用encodeURI(UserID)传参数,后台处理如下:  
    String UserID = request.getParameter("UserID"); 
    UserID = new String(UserID.getBytes("ISO-8859-1"),"utf-8");
    这是我经常解决乱码的一个方法,楼主可以去试试!~
    不过还有一个方法就是如果你项目发布在tomcat服务器下,可以去配置一下,也可以解决乱码问题的,这个配置你就去baidu,google上去搜索一下就出来了...
      

  2.   

    你在后台往jsp传参数的时候也设置下参数的编码格式,试试。采用同样编码格式。
      

  3.   

    代码语句是这样的 
    String filename = new String(UserID.getBytes("GBK"),"gb2312"); 
    但是System.out.println(filename );这样输出的还是:??°?·? String UserID =“李强”; 
    String filename = new String(UserID.getBytes("GBK"),"gb2312"); System.out.println(filename ); 
    这样出来的效果是可以的 ; 
    而且 想输出的 test_李强.xls 也输出成功了:两个配置不是一样的么?  一个成功 一个不成功?
      

  4.   

    String filename = new String(UserID.getBytes("GBK"),"gb2312"); 
    这个有什么意义?String filename = new String(UserID.getBytes(“编码A”,“编码B”),它是以编码A方式去取数据,娶过来之后把他变成编码B。这样坐的话,当然前提是要传过来的数据的编码是编码B且读取编码是编码A才有意义
      

  5.   

    String filename = new String(UserID.getBytes("iso8859-1"),"gb2312");System.out.println(filename );