ZK提交textbox内奇数个中文汉字乱码问题
2009-04-08 15:48
363 查看
小弟最近在学习使用ZK技术,发现textbox里填写的中文产生奇数汉字乱码问题,不得正解,终日郁郁寡欢....
奇数汉字乱码问题产生原由:ZK ajax提交textbox里的中文采用UTF-8 URLEncode编码,传递到服务器端以后又采用GBK URLDecode,就会产生该问题。
网上说的补一个全角空格,发现如果混杂了汉字英文也不行,所以我采用了一种比较别扭的办法:
定义2个textbox,一个隐藏,一个显示,一开始把要输入汉字的textbox显示出来nickname,把另外一个隐藏nickname2,但输入汉字完毕,焦点移走的时候,触发onblur的js事件,把nickname里的内容拷贝到nickname2当中,并把nickname里的内容用js进行url编码,然后把nickname隐藏起来
当提交以后,则把nickname里的内容提交到服务器,服务器对该内容进行解码即可!
虽然按这种方法解决了乱码问题,但的确非常别扭,希望得到正解的朋友能告之...Thanks a lot!
贴个用zk做的系统截图::
---------------
补充,经过一段时间的使用,发现如果回到nickname去编辑,会导致编辑无效,因此,补充办法为:
<textbox rows="5" cols="50" action="onFocus:#{content2}.value='';#{content}.value=decodeURI(#{content}.value);action.show(#{content});action.hide(#{content2});" visible="false" id="content2" width="150px" />
<textbox rows="5" cols="50" action="onBlur:#{content2}.value=#{content}.value;#{content}.value=encodeURI(#{content}.value);action.show(#{content2});action.hide(#{content});" id="content" value="" width="150px" />
获得焦点以后重新解码回去即可
另外补充一点是: 如果把textbox放在form当中使用,会导致action.show action.hide不起作用,不知道是为什么,要避免之!
奇数汉字乱码问题产生原由:ZK ajax提交textbox里的中文采用UTF-8 URLEncode编码,传递到服务器端以后又采用GBK URLDecode,就会产生该问题。
网上说的补一个全角空格,发现如果混杂了汉字英文也不行,所以我采用了一种比较别扭的办法:
<textbox visible="false" id="nickname2" width="150px" /> <textbox action="onBlur:#{nickname2}.value=#{nickname}.value;#{nickname}.value=encodeURI(#{nickname}.value);action.show(#{nickname2});action.hide(#{nickname});" id="nickname" value="" width="150px" />
定义2个textbox,一个隐藏,一个显示,一开始把要输入汉字的textbox显示出来nickname,把另外一个隐藏nickname2,但输入汉字完毕,焦点移走的时候,触发onblur的js事件,把nickname里的内容拷贝到nickname2当中,并把nickname里的内容用js进行url编码,然后把nickname隐藏起来
当提交以后,则把nickname里的内容提交到服务器,服务器对该内容进行解码即可!
虽然按这种方法解决了乱码问题,但的确非常别扭,希望得到正解的朋友能告之...Thanks a lot!
贴个用zk做的系统截图::
---------------
补充,经过一段时间的使用,发现如果回到nickname去编辑,会导致编辑无效,因此,补充办法为:
<textbox rows="5" cols="50" action="onFocus:#{content2}.value='';#{content}.value=decodeURI(#{content}.value);action.show(#{content});action.hide(#{content2});" visible="false" id="content2" width="150px" />
<textbox rows="5" cols="50" action="onBlur:#{content2}.value=#{content}.value;#{content}.value=encodeURI(#{content}.value);action.show(#{content2});action.hide(#{content});" id="content" value="" width="150px" />
获得焦点以后重新解码回去即可
另外补充一点是: 如果把textbox放在form当中使用,会导致action.show action.hide不起作用,不知道是为什么,要避免之!
相关文章推荐
- 提交表单乱码问题 action 中文接收的参数乱码
- ajax提交 返回中文乱码问题
- Tomcat中用Filter解决JSP提交中文信息到Servlet的乱码问题
- ajax用post提交中文乱码问题(待补充)
- 关于Struts里提交中文表单到ActionForm后的乱码问题。
- WebRequest提交时中文乱码问题的解决
- spingmvc 接口中方法参数为中文乱码问题 ,使用put方式提交乱码
- ajax get提交方式中文乱码问题
- tomcat中页面利用get方式提交的参数中的中文乱码问题
- Request提交中文数据的乱码问题
- 中文乱码问题 ? 原因:JSP中默认使用iso-8859-1字符编码方式,不支持中文 ? 常见的支持中文的编码方式:gb2312(常用简体汉字)、gbk(简体和繁体汉字)、utf-8 ? 解决中文乱码
- 中文在C/C++中的处理和汉字乱码问题
- Spring整合Spring MVC项目解决POST提交中文乱码问题的方案
- Ajax使用POST提交中文乱码问题
- struts2中form提交到action中的中文参数乱码问题解决办法(包括取中文路径)
- 解决表单get方式提交时的中文乱码问题
- 关于提交数据时中文乱码问题的解决
- 中文在C/C++中的处理和汉字乱码问题(wchar_t)
- 找到一篇关于form以post、get方式提交数据中文乱码问题总结
- 提交中文数据乱码问题总结