`
181054867
  • 浏览: 147329 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

com.caucho.jsp.JspParseException: illegal utf8 encoding at 0xfd 解决方法

阅读更多

使用resin-3.1.1作为服务器,在jsp里如下的代码:
int test;
out.println("test value is : " + test);
resin出现的异常是:
com.caucho.jsp.JspParseException: illegal utf8 encoding at 0xfd
不是:
com.caucho.jsp.JspParseException: /index.jsp:12: variable test might not have been initialized
        out.println("test value is : " + test);
这样的异常

经过反复研究,发现是操作系统的问题,我分别在本机测试(我使用ubuntu开发),ubuntu的时区是香港(en_HK),
而服务器上的时区是中国大陆(zh_CN),处理方法如下:


首先,使用locale命令查看当前服务器设置地域,我出来的结果是:
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
表明使用的是中国地区
使用export LANG=en_US.UTF-8命令修改为英文美国地区。
再用locale查看是否已修改成功,我出来的结果是:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
修改成功了(可以使用vi查看,修改后,vi的一些提示是否变成英文了)

使用vi /etc/sysconfig/i18n修改这个文件(记得先备份,这步不知是否必须,但最好修改吧):
我的i18n内容是:
LANG="zh_CN.UTF-8"

修改为:
LANG="en_US.UTF-8"
SUPPORTED="en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"

最后,使用locale确定修改成功

重启resin再测试,异常正确了,激动万分。。
呵呵,希望能帮到您!

2
1
分享到:
评论
2 楼 qianzhiyong 2016-04-20  
遇到同样的问题,按照已经解决,感谢!
1 楼 netwelfare 2015-04-12  
resin出现编码问题,不一定真正是编码错误造成的。有的时候是服务器的内存不足造成的,这种情况很常见,网上这篇文章对内存不足造成的编码错误进行了详细的介绍:resin出现:illegal utf8 encoding at (190)问题的分析

相关推荐

Global site tag (gtag.js) - Google Analytics