从js用地址栏给action传值的中文乱码(全是问号)

在使用SSH框架项目中,遇到从JS传递给Action的中文参数显示为问号的问题。尝试调整Tomcat及项目编码设置未能解决,最终通过正确转换字符串编码解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        前几天在完成一个ssh框架的项目时遇到一个小问题,情况是这样的。

        在action中定义了私有变量,并提供get(),set()方法,js代码中就应该可以访问它。于是我从js代码中通过地址栏传值给了action的相应变量,但是,如果变量值为中文的时候,在action中测试输出则为“???”,而浏览器地址栏中仍然能显示中文。

 

        我先根据网上一些解答配置了tomcat的配置文件,未果。后来想想也许不是什么复杂的问题,应该就是编码问题。我的myeclipse和项目的编码都设置为的“UTF-8”。于是我试着把项目和myeclipse编码都设为“iso8859-1”,还是不行。

        这样不行,我便采取了更直接的方式,在action中把获取的变量值转换一下试试(假设变量为string):

        String newstring = new String(string.getBytes("iso8859-1"));

        但是这样还是没有用~~~~~~试了很久发现我的想法是对的但是合适的语句应该如下:

           String newstring = new String(string.getBytes("iso8859-1"),"utf-8");

        ps:我先试着转成GBK,然后发现字可以显示了,但是没人认识的字。。。果然还是“iso8859-1”对中文的支持好啊

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值