Java中utf-8编码的String变成byte数组

描述:
1.页面上输入汉字,然后提交utf-8编码格式
2.后台接收该汉字,将汉字分开.获得其utf-8编码


页面文件:

<%@ page contentType="text/html;charset=utf-8"%>
<%request.setCharacterEncoding("utf-8");%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>My JSP 'index.jsp' starting page</title>
</head>

<body>
<form action = "servlet\InputTest" method = "get">
<input type="text" name="inputtext" />
<input type="submit" />
</form>
</body>
</html>



后台文件:

throws ServletException, IOException {

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.print(" [ ");
if (request.getParameter("inputtext") != null) {
String t = request.getParameter("inputtext");
out.println(t);

System.out.println(t+" :t.value");
System.out.println(t.length()+" :t.length");

for (int i = 0 ; i < t.length() ; i++) {
System.out.println(Integer.toHexString((byte)t.charAt(i)& 0xFF).toUpperCase()+" :t.charAt");
}
out.print(" ] ");
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}


虽然有乱码...但取到了前台页面的汉字的utf-8的码了...具体怎么把乱码再去掉..目前还未解决...后续完成之..

ps:
将通过request.getParameter()方法或得到的String直接得到byte[],封装成了一个方法..如下

public byte[] transFromUTF8(String s){
byte[] b=new byte[s.length()];
for (int i = 0 ; i < s.length() ; i++) {
System.out.println(Integer.toHexString((byte)s.charAt(i)& 0xFF).toUpperCase()+" :16进制utf-8");
b[i]=(byte)s.charAt(i);
}
return b;
}


控制台打印效果:
前台输入"士大夫"
后台显示:

????¤§?¤? // 乱码状态的"士大夫"
9 :t.length //士大夫 这三个字的byte长度
E5 :t.charAt // 这些就是士大夫 三个字的UTF-8编码...每个字由3个构成
A3 :t.charAt
AB :t.charAt
E5 :t.charAt
A4 :t.charAt
A7 :t.charAt
E5 :t.charAt
A4 :t.charAt
AB :t.charAt


---------------------------------------
将自己学习中的东西记录下来...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值