深入分析java中的中文编码问题.pdf
还剩
19页未读,
继续阅读
下载文档到电脑,马上远离加班熬夜!
亲,很抱歉,此页已超出免费预览范围啦!
如果喜欢就下载吧,价低环保!
内容要点:
6 d d 8 0 1 6 2 1 1 5 5 9 c 0 16 b 2 2淘我 喜欢d 4 a 3 d 2 c f a 3b b b 6c h a r [ ]G B K 编 码b y t e [ 6 d d 8 0 1 6 2 1 1 5 5 9 c 0 16 b 2 2淘我 喜欢d 4 a 3 d 2 c f a 3b b b 6c h a r [ ]G B K 编 码b y t e [ 字符。 3.6.2 一个汉字变成一个 问号 例如,字符串“淘!我喜欢!”变成了“??????”编码过程如 图 3-20 所示 6 d d 8 0 1 6 2 1 1 5 5 9 c 0 16 是 GBK 或者 GB2313,所以用 encodeURIComponent 编码后是 UTF-8,而 Java 用 GBK 去解码显然不对,解决的办法是用 encodeURIComponent 两 注意, escape 和 unescape 已经从 ECMAScript v3 已从标准中删除了, URL 的编码可以用 encodeURI 和encodeURIComponent 来代替 。 2 3.5 JS 中编码问题 当前的 Web 应用中 JS 操作页面元素的 情况越来越多 ,尤其通过 JS 发异步请求时遇到编码问题的情况经常出现。 下面将介绍 JS 中出现编码问题的几种情况: 3 注意 , 你一定要在第一次调用 request.getParameter 方法之前就要设置 request.setCharacterEncoding(charset),否则你的POST 表单提交上来 char[] cbuf = cc.getBuffer(); int start = bc.getStart(); for (int i = 0; i 中定义的,如果没有定义,那么将以默认编码 ISO 中配置, PathInfo 是我们请求的具体的 Servlet, QueryString 是要传递的参数,注意这里是在浏览器里直接输入 URL 所以是通过 Get 方法请求的,如果是 POST 方法 S o c k e t 流客 户 端 浏 览 器服 务 端 S e r v l e t E n g i n eR e q u e s t编 码R e q u e s t解 码R e q u e s } UTF-8 编码与 GBK 和 GB2312 不同,不用查码表,所以在编码效率上 UTF-8 的效率会更好,所以在存储中文字符时UTF-8 编码比较理想。 3.3.7 几种编码格式的比较 对 图 3-9 UTF-8 编码 UTF-16 虽然编码效率很高,但是对单字节范围内字符也放大了一倍,这无形也浪费了存储空间,另外 UTF-16 采用顺序编码,不能对单个字符的编码值进行校验 ,如果中 3.3.3 按照 GBK 编码 字符串“ I am 君山”用 GBK 编码, 图 3-7 是编码结果: 4 9 2 0 6 1 6 d 2 0 5 4 1 b5 c 7 1Ia m君山4 9 2 4 9 2 0 6 1 6 d 2 0 5 4 1 b 5 c 7 1Ia m君山4 9 2 0 6 1 6 d 2 0 3 f 3 fc h a r [ ]I S O - 8 8 5 9 - 1 图 3-3 Java 编码类图 首先根据指定的 charsetName 通过 Charset.forName(charsetName)合法的 Charset类,然后根据 Charset创建 Cha ByteBuffer byteBuffer = heapByteBuffer.putChar(c); 以上这些提供字符和字节之间的相互转换只要我们设置编解码格式统一一般都不会出现问题。 3.3 J
发表评论
暂无评论,赶快抢占沙发吧。