findbugs异常(2):Reliance on default encoding


1. 官方说明:

Reliance on default encoding
Found a call to a method which will perform a byte to String (or String to byte) conversion, and will assume that the default platform encoding is suitable. This will cause the application behaviour to vary between platforms. Use an alternative API and specify a charset name or Charset object explicitly.


2. 出错代码片段:

            response.setHeader("Content-Disposition", "attachment;filename="
                    + new String((fileName + ".xlsx").getBytes(), "iso-8859-1"));



3. 说明:

String.getBytes()依赖于系统编码,虽然方便,但是一旦使用就变成了一个技术债务,因为系统的默认编码是不可预知的

如果要避免这个错误,需要将编码指定好,即:

String.getBytes("GBK")

这是getBytes的一个重载方法,可以指定getBytes使用的编码

PS:常用编码中,笔者暂时只发现GBK编码中汉字占2个字节,其余均占3个字节

(这段转自:新浪博客)

你可能感兴趣的:(Exception)