IE 8 编码问题

发布于 2024-09-11 10:16:38 字数 700 浏览 1 评论 0原文

我们有一个wep应用程序,当在GET查询字符串中使用中文单词时无法得到正确的结果 服务器端的参数,但在 POST 数据中我们可以在服务器端获取正确的参数。 服务器是Tomcat。在服务器端我们使用GBK编码来获取HTTP参数 如果我将查询字符串中的参数编码从 ISO8859-1 转换为 GBK,这是正确的,但问题是有太多 JSP 页面需要更改。所以我想是否有办法配置 IE 以使用 GBK 发送查询字符串,但 iso8859- 1. 我试图取消选中 IE 的“发送 UTF-8 url”选项,但它对我不起作用...

请帮助我,对不起我的英语不好!

//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在表单中传递到服务器(使用POST方法)我可以得到正确的中文字符串。

是不是IE8不支持在URL中使用汉字?

we have a wep application, when using chinese words in GET query string can not get correct
parameter on server side but in POST data we can get correct parameter on server side.
server is Tomcat. on server side we use GBK encoding to get HTTP parameters
if I convert encoding of parameters in in query string from ISO8859-1 to GBK it's right but the problem is there are too many JSP pages to change.so I wanna if there is anyway to configure IE to send query string using GBK but iso8859-1.
I tried to uncheck "send UTF-8 url" option of IE ,it did not work for me...

PLZ HELP SORRY FOR MY BAD ENGLISH!

//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 is used to set encoding converting, default is 1 which means dont change .
FlowNo is supposed to be some Chinese words, if FlowNo is passed to server in url(HTTP GET query string)with default iPostChange I cant get right Chinese string, but if FlowNo is passed to server in a Form(using POST method)I can get right Chinese string.

is that IE8 did not support using Chinese characters in URL ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陪你搞怪i 2024-09-18 10:16:38

固定的。

请参阅: Tomcat wiki

Tomcat 将使用 ISO-8859-1 作为默认字符编码整个 URL,包括查询字符串(“GET 参数”)。有两种方法可以指定如何解释 GET 参数:

  1. 设置 URIEncoding 属性
    元素在
    server.xml 到特定的东西
    (例如 URIEncoding="UTF-8")。

  2. 设置 useBodyEncodingForURI
    元素上的属性
    在 server.xml 中设置为 true。这将
    使连接器使用
    GET 请求正文的编码
    参数。

fixed.

see : Tomcat wiki

Tomcat will use ISO-8859-1 as the default character encoding of the entire URL, including the query string ("GET parameters"). There are two ways to specify how GET parameters are interpreted:

  1. Set the URIEncoding attribute on the
    element in
    server.xml to something specific
    (e.g. URIEncoding="UTF-8").

  2. Set the useBodyEncodingForURI
    attribute on the element
    in server.xml to true. This will
    cause the Connector to use the
    request body's encoding for GET
    parameters.

|煩躁 2024-09-18 10:16:38

最好不要依赖 GET 请求中的字符编码,因为某些浏览器会将它们编码为 UTF-8,而另一些浏览器会将它们编码为 ISO-8859-1。此外,强制执行的编码取决于提交表单的页面的编码 - 因此,虽然以 UTF-8 编码的页面上的一个表单将导致 UTF-8 编码的 GET 请求,但在使用 UTF-8 编码的页面上的类似表单将导致 UTF-8 编码的 GET 请求。 ISO-8859-1 编码将导致 ISO-8859-1 编码请求。

另请参阅 HTTP get 请求的正确编码是什么字符串? 以获得更详细的解释。

It's best not to rely on the character encoding in GET requests, as some browsers will encode them in UTF-8 and others will encode them as ISO-8859-1. Furthermore, the encoding that is enforced depends on the encoding of the page that submitted the form - so, while one form on a page encoded in UTF-8 will lead to an UTF-8 encoded GET request, a similar form on a page with ISO-8859-1 encoding will lead to an ISO-8859-1 encoded request.

See also What's the correct encoding of HTTP get request strings? for a more detailed explanation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文