| 序号 |
步骤说明 |
结果 |
域 |
| 1 |
在IE中输入“中文” |
D6 D0 CE C4 |
IE |
| 2 |
IE把字符串转变成UTF,并送入传输流中 |
E4 B8 AD E6 96 87 |
| 3 |
Servlet接收到输入流,用readUTF读取 |
4E 2D 65 87(unicode) |
Servlet |
| 4 |
编程者在Servlet中必须把字符串根据GB2312还原为字节流 |
D6 D0 CE C4 |
| 5 |
编程者根据数据库内码ISO8859-1生成新的字符串 |
00 D6 00 D0 00 CE 00 C4 |
| 6 |
把新生成的字符串提交给JDBC |
00 D6 00 D0 00 CE 00 C4 |
| 7 |
JDBC检测到数据库内码为ISO8859-1 |
00 D6 00 D0 00 CE 00 C4 |
JDBC |
| 8 |
JDBC把接收到的字符串按照ISO8859-1生成字节流 |
D6 D0 CE C4 |
| 9 |
JDBC把字节流写入数据库中 |
D6 D0 CE C4 |
| 10 |
完成数据存储工作 |
D6 D0 CE C4 数据库 |
|
以下是从数据库中取出数的过程 |
| 11 |
JDBC从数据库中取出字节流 |
D6 D0 CE C4 |
JDBC |
| 12 |
JDBC按照数据库的字符集ISO8859-1生成字符串,并提交给Servlet |
00 D6 00 D0 00 CE 00 C4 (Unicode) |
|
| 13 |
Servlet获得字符串 |
00 D6 00 D0 00 CE 00 C4 (Unicode) |
Servlet |
| 14 |
编程者必须根据数据库的内码ISO8859-1还原成原始字节流 |
D6 D0 CE C4 |
|
| 15 |
编程者必须根据客户端字符集GB2312生成新的字符串 |
4E 2D 65 87 (Unicode) |
|
|
Servlet准备把字符串输出到客户端 |
| 16 |
Servlet根据<Servlet-charset>生成字节流 |
D6D0 CE C4 |
Servlet |
| 17 |
Servlet把字节流输出到IE中,如果已指定<Servlet-charset>,还会设置IE的编码为<Servlet-charset> |
D6 D0 CE C4 |
| 18 |
IE根据指定的编码或默认编码查看结果 |
“中文”(正确显示) |
IE |