首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

为何是ISO8859-1而不是UTF-8

2013-07-01 
为什么是ISO8859-1而不是UTF-8?使用struts2导出excel,struts.xml文件中这样配置的文件名:action nameex

为什么是ISO8859-1而不是UTF-8?
使用struts2导出excel,
struts.xml文件中这样配置的文件名:


<action name="exportexcel" class="BeenChina.PM.Action.CaseNumberEfficiencyQuery">
    <result name="success" type="stream">
        ...
        <param name="contentDisposition">attachment;filename="${fileName}.xls"</param>
        ...
    </result>
        </action>


Action的fileName属性的get方法:

public String getFileName() throws UnsupportedEncodingException {
    fileName=new String(fileName.getBytes(),"ISO8859-1");
    return fileName;
}

public void setFileName(String fileName) throws UnsupportedEncodingException {
    this.fileName=fileName;
}


现在的问题是:为什么要用ISO8859-1才可以使下载文件名不是乱码,而UTF-8却不行?
[解决办法]
iso-8859-1是JAVA网络传输使用的标准字符集
[解决办法]
这个是跟你tomcat配置的传输编码格式有关系的。
在tomcat的安装目录下找到
server.xml。
找到下面这段:看看你那里面设置的是什么。
  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"  URIEncoding="UTF-8"/>

[解决办法]
引用:
Quote: 引用:

这个是跟你tomcat配置的传输编码格式有关系的。
在tomcat的安装目录下找到
server.xml。
找到下面这段:看看你那里面设置的是什么。
  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
  <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"  URIEncoding="UTF-8"/>


我的默认配置是这样的:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

没加的话默认就是ISO,你加上的话就等于修改了默认编码格式。比如加上UTF-8后那么就是UTF-8传输了。

热点排行