关于JSP-SERVLET日文操作系统UTF-8乱码问题

BroA_a 2009-01-08 02:30:25
最近在做个网站的汉化,JSP页面编码从Windows-31J修改到UTF-8,大致修改代码如下:
[code=JSP]
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
……
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
[/code]

之后在发现传到SERVLET时产生乱码情况,SERVLET接受代码大致如下:

sb.append( new String( values[i].getBytes("8859_1"), "UTF-8" ) );
System.out.println(sb.toString());


发现输出乱码,操作系统为日文XP。

另外,把我的日文XP操作系统UNICODE改成中文之后,可以正常输出
想请问大家:
1、有没有什么方法在日文UNICODE下也能正常输出值不乱码呢?
2、UTF-8应该同时支持日文与中文才对啊,为什么会出现乱码呢?

谢谢
...全文
239 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yqlx521 2009-01-09
  • 打赏
  • 举报
回复
帮你顶了,我们也做对外,但我们只是吧区域语言改成日文了,还有高级里面的,没出现这种问题啊
BroA_a 2009-01-09
  • 打赏
  • 举报
回复
new String(value.getBytes("ISO-8859-1"), "GBK");
这个貌似也不行,是说服务器UNICODE必须是中文编码的吗?
刚才找日文原版的代码,发现有这么个东西,有啥用处?编码这东西我不是很明白,各位大大多指教哈。
	public static String convertForSJIS(String string){

if(string == null)
return null;

StringBuffer buf = new StringBuffer();
char c;

for(int i = 0, n = string.length(); i < n; i++){
switch(c = string.charAt(i)){

case 0x301c: c = 0xff5e; break;

}

buf.append(c);
}

return buf.toString();
}
BroA_a 2009-01-09
  • 打赏
  • 举报
回复
呃。。。我是在日文系统下面汉化,把区域语言以及高级里面的UNICODE改成中文后就能正常显示了,是说区域语言的东西必须改成中文的吗?不改正常来说就是不好用的吗?
Jacky_Zhu_1983 2009-01-08
  • 打赏
  • 举报
回复
new String(value.getBytes("ISO-8859-1"), "GBK");试试呢
kao331431214 2009-01-08
  • 打赏
  • 举报
回复
路过帮你顶一下

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧