简体   繁体   English

Websphere 查询字符串编码问题

[英]Websphere query string encoding issue

Have an URL with non-latin symbols in query params: http://localhost:9080/proxy-octopus/oct2c/!adm_v2_Common.DialogForm?func=FiltrProc&title=Поиск процедур по набору атрибутов在查询参数中有一个带有非拉丁符号的 URL: http://localhost:9080/proxy-octopus/oct2c/!adm_v2_Common.DialogForm?func=FiltrProc&title=Поиск процедур по набору атрибутов

Changed url encoding for WAS to Windows-1251: client.encoding.override set to Windows-1251将 WAS 的 url 编码更改为 Windows-1251:client.encoding.override 设置为 Windows-1251

Query parameters are got good.查询参数得到了很好的。 Next code returns valid value: "Поиск процедур по набору атрибутов".下一个代码返回有效值:“Поиск процедур по набору атрибутов”。

request.getParameter("title") 

But for next code I've got valid value: "func=FiltrProc&title=Ïîèñê%20ïðîöåäóð%20ïî%20íàáîðó%20àòðèáóòîâ".但是对于下一个代码,我得到了有效值:“func=FiltrProc&title=Ïîèñê%20ïðîöåäóð%20ïî%20íàáîðó%20àòðèáóòîâ”。

request.getQueryString()

Also I can receive real value ("func=FiltrProc&title=Поиск%20процедур%20по%20набору%20атрибутов") by next way:我也可以通过以下方式获得实际价值(“func=FiltrProc&title=Поиск%20процедур%20по%20набору%20атрибутов”):

new String(request.getQueryString().getBytes(Charsets.ISO_8859_1),"Windows-1251")

What I must do to receive valid value on request.getQueryString()?我必须做什么才能在 request.getQueryString() 上接收有效值?

For internationalization it is more reliable to use UTF-8 encoding.对于国际化,使用 UTF-8 编码更可靠。

So, try to change client.encoding.override to UTF-8.因此,尝试将 client.encoding.override 更改为 UTF-8。

Also, check if your title parameter is properly url-encoded.此外,请检查您的标题参数是否正确进行了 url 编码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM