描述:
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
---------------------------------------
将自己学习中的东西记录下来...
分享到:
相关推荐
本文将深入探讨如何将中文字符串转换成UTF-8编码的字节数组,并解析这一过程中的计算步骤。UTF-8是一种广泛使用的Unicode字符编码,它可以表示Unicode字符集中的所有字符。 首先,我们需要明白Unicode字符集是一个...
如果需要兼容多个Excel版本,可以使用UTF-8编码格式,并在文件头部输出BOM,即0xEF 0xBB 0xBF这三个字节。 Java避免UTF-8的csv文件打开中文出现乱码的方法是使用UTF-16LE编码格式,并在文件头部输出BOM。同时,需要...
- **Unicode到UTF-8**: 同样以"a 中文"为例,转换为UTF-8编码后,字节数组为`0x61 0xE4 0xB8 0xAD 0xE6 0x96 0x87`。 - **UTF-8到Unicode**: 反向转换后,结果依然是"a 中文"。 ##### 3. Unicode与ISO-8859-1 - **...
### 关于JAVA字符编码:Unicode, ISO-8859-1, GBK, ...在实际开发中,建议尽可能使用UTF-8编码,因为它可以很好地支持各种语言,并且与ASCII兼容。同时,开发者还需要注意不同编码之间的转换细节,避免出现乱码等问题。
在Java中,String类也是用于存储和操作字符序列,同样支持UTF-8编码。 实现UTF-8与字符串之间的转换通常需要特定的函数或方法。在Python中,你可以使用内置的`encode`和`decode`函数进行转换: ```python # 字符串...
《明解Java-UTF-8》是一门针对Java编程语言和UTF-8编码的课程,其课后提供的源代码旨在帮助学习者巩固所学知识,适用于初学者和希望深入理解Java的同学。UTF-8是一种广泛使用的字符编码标准,能够表示Unicode字符...
最后,我们将UTF-8编码的字节添加到fullByte数组中,得到最终的UTF-8编码的字节数组。 GBK与UTF-8之间的转换需要我们了解编码的基本原理和规则,正确地将GBK编码的字符串转换成UTF-8编码的字符串。同时,我们也需要...
// 从UTF-8编码的字节数组转换回String String str2 = new String(bytes, "UTF-8"); ``` 如果在解码时不正确地指定了字符集(例如使用了"GBK"而不是"UTF-8"),那么将会导致乱码问题。 #### 五、应用场景 1. **...
使用`getBytes()`方法,它会根据默认的字符编码(通常是UTF-8)将字符串转换为字节数组。例如: ```java String str = "Hello, World!"; byte[] bytes = str.getBytes(); ``` 2. 字节数组转字符串: 使用`new...
为了避免这个问题,我们通常指定一个明确的字符编码,例如UTF-8: ```java public static String byteToHex(byte[] bytes) { return new String(bytes, StandardCharsets.UTF_8); } ``` ### 二、`String` 转 `...
- 将UTF-8编码的字节数组转换为Unicode字符串:`byte[] utf8s = {0xe4, 0xb8, 0xad, 0xe6, 0x96, 0x87}; String s = new String(utf8s, "UTF-8");` - **Unicode与ISO-8859-1之间的转换**: - 由于ISO-8859-1编码...
1. **UTF-8编码**:通过`name.getBytes("UTF-8")`获取到的byte数组长度为3,这是因为“你”这个汉字在UTF-8编码下占用了3个字节。 2. **UTF-16编码**:通过`name.getBytes("UTF-16")`获取到的byte数组长度为4,这是...
当一个UTF-8编码的文本在GB2312环境下显示或处理时,如果没有进行正确的转换,就可能出现乱码问题。这是因为UTF-8和GB2312编码之间存在不兼容性:UTF-8使用1到4个字节来表示一个字符,而GB2312只使用2个字节。所以,...
使用`getBytes("UTF-8")`方法,可以获得“中文”的UTF-8编码,即字节数组“e4 b8 ad e6 96 87”。 3. **从GBK编码恢复原字符串** 如果我们有字节数组“d6 d0 ce c4”,并已知它是GBK编码,可以使用`new String...
本文介绍了 Java 中 UTF-8 转 GB2312 的编码转换原理及实现方法。通过对给定代码片段的分析,指出了存在的问题,并给出了正确的实现方案。在实际开发过程中,了解并掌握字符编码的转换对于避免乱码等问题至关重要。
字符编码问题常常出现在不同系统之间进行数据交换时,例如,一个使用GBK编码的Java程序发送数据到使用UTF-8编码的服务器,如果没有正确处理编码转换,可能会出现乱码。因此,理解并掌握字符集编码对于处理跨平台的...
String base64 = Base64.getEncoder().encodeToString("测试字符串".getBytes("UTF-8")); System.out.println(base64); ``` 2. **将Base64转换为byte[]** - 使用`BASE64Decoder`实例进行解码: ```java BASE...
例如,`new String(bs, "utf-8")`将字节数组`bs`解码为UTF-8编码的字符串。`substring`方法用于从原始字符串中提取出每两个字符(一个字节的十六进制表示),并使用`Integer.parseInt`将其转换为十进制整数,进而...
#### 三、JAVA中的UTF-8编码 UTF-8是JAVA中最常用的字符编码方式之一。它是一种可变长度的编码方案,对于常见的ASCII字符(即UNICODE码点在U+0000到U+007F之间的字符),UTF-8编码和ASCII编码完全相同;而对于其他...