转utf-8

public static String toUtf8String(String src)
    {
       byte[] b = src.getBytes();
       char[] c = new char[b.length];
       for(int i=0;i<b.length;i++)
       {
        c[i] = (char)(b[i]&0x00FF);
       }
       return new String(c);
    }

在centos上导出文件一直乱码。

原来就没出现这问题,适了好多种方法。

最后把导出的编码设成gbk竟然好了。现在还不知其原因,如有高手还请赐教。



java代码编码utf-8,

jsp编码utf-8,

centos中i18n:utf-8,

tomcat:uriencoding utf-8.







public static String toUtf8String(String src)
    {
       byte[] b = src.getBytes();
       char[] c = new char[b.length];
       for(int i=0;i<b.length;i++)
       {
        c[i] = (char)(b[i]&0x00FF);
       }
       return new String(c);
    }





对于UTF-8编码格式的文本文件,其前3个字节的值就是-17、-69、-65,所以,判定是否是UTF-8编码格式的代码片段如下

   测试文件编码是否为UTF-8

     File file = new File(path);

     InputStream ios = new java.io.FileInputStream(file);

    te[] b = new byte;

     ios.read(b);

     ios.close();

     if (b[0] == -17 && b[1] == -69 && b == -65)

       System.out.println(file.getName() + “:编码为UTF-8″);

     else

       System.out.println(file.getName() + “:可能是GBK,也可能是其他编码。”);





   public static void downloadFile(HttpServletRequest request,
            HttpServletResponse response, String fileName)
    {
        if (StringUtils.isEmpty(fileName))
        {
            return;
        }

        //导出文件路径
        String filePath = PlatformConfig.getUseDataPath() + Constants.EXPORT_PATH + fileName;
       
        // 处理中文名称,需要编码
        response.setContentType("application/octet-stream; CHARSET=GBK");
       
        InputStream inputStream = null;
        OutputStream outputStream = null;
        try
        {
            response.setHeader("Content-Disposition", "attachment; filename="
              + EncodingUtil.getString(fileName.getBytes("gbk"),
        "ISO8859-1"));
            inputStream = new FileInputStream(filePath);
            outputStream = response.getOutputStream();
           
            transferFile(inputStream, outputStream);
        }
        catch (FileNotFoundException e)
        {
            logger.error(e.toString());
        }
        catch (IOException e)
        {
            logger.error(e.toString());
        }
        finally
        {
            try
            {
                if (inputStream != null)
                {
                    inputStream.close();
                }
            }
            catch (Exception e)
            {
                logger.error(e.toString());
            }
            try
            {
                if (outputStream != null)
                {
                    outputStream.close();
                }
            }
            catch (Exception e)
            {
                logger.error(e.toString());
            }
           
            //删除临时导出文件
            FileTools.delFile(filePath);
        }
    }

猜你喜欢

转载自love398146779.iteye.com/blog/1446312