PLZ帮助我的坏英语!
// iPostChange int 0:ISO8859_1,1:NoChange,2:ISO8859_1-> GBK,3:GBK-> ISO8859_1,5:GBK
String sFlowNo = DataConvert.toRealString(iPostChange,(String)CurComp.getParameter("FlowNo"));
iPostChange用于设置编码转换,默认为1,这意味着不要更改。 FlowNo应该是一些中文单词,如果FlowNo在url(HTTP GET查询字符串)中传递给服务器,默认的iPostChange我不能得到正确的中文字符串,但是如果FlowNo在Form中传递给服务器(使用POST方法)我可以得到正确的中文字符串。
是IE8不支持在URL中使用中文字符吗?
答案 0 :(得分:1)
固定。
请参阅:Tomcat wiki
Tomcat将使用ISO-8859-1作为整个URL的默认字符编码,包括查询字符串(“GET参数”)。有两种方法可以指定如何解释GET参数:
设置URIEncoding属性 元素 server.xml到特定的东西 (例如URIEncoding =“UTF-8”)。
设置useBodyEncodingForURI 元素的属性 在server.xml中为true。这将 导致连接器使用 请求GET的正文编码 参数。
答案 1 :(得分:1)
最好不要依赖GET请求中的字符编码,因为有些浏览器会将它们编码为UTF-8,而其他浏览器会将它们编码为ISO-8859-1。此外,强制执行的编码取决于提交表单的页面的编码 - 因此,以UTF-8编码的页面上的一个表单将导致UTF-8编码的GET请求,页面上的类似表单ISO-8859-1编码将导致ISO-8859-1编码请求。
有关更详细的说明,另请参阅What's the correct encoding of HTTP get request strings?。