1 用最原始的方法解决乱码问题---直接手动转码
来源:互联网 发布:苹果电脑用于软件开发 编辑:程序博客网 时间:2024/05/30 22:41
一 在前端将中文转化为unicode
function encodeUnicode(str) { var res = []; for ( var i=0; i<str.length; i++ ) { res[i] = ( "00" + str.charCodeAt(i).toString(16) ).slice(-4); } return "\\u" + res.join("\\u"); }
二 java后端将unicode转为中文
public String convertUnicodeToChinese(String utfString){ StringBuilder sb = new StringBuilder(); int i = -1; int pos = 0; while((i=utfString.indexOf("\\u", pos)) != -1){ sb.append(utfString.substring(pos, i)); if(i+5 < utfString.length()){ pos = i+6; sb.append((char)Integer.parseInt(utfString.substring(i+2, i+6), 16)); } } return sb.toString(); }
三 解析
1 unicode是16进制,和中文汉字有着意义对应的关系:
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。
目前的用于实用的 Unicode 版本对应于 UCS-2,使用16位的编码空间。也就是每个字符占用2个字节。
utf-8长度是1-6个字节,第一个字节的高位1的数目指明了这个utf-8的字符使用的byte数目,在UTF-8编码集中,每个汉字使用 3个字符表示
2 charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
3 toString(16)数字以16进制显示
4 slice(-4)返回最后四位数字
5 java中把unicode转为汉字是一个逆向过程。
6 至于其中的转换规则我还不太懂,请大佬告诉我!
阅读全文
0 0
- 1 用最原始的方法解决乱码问题---直接手动转码
- 用最原始最易懂的方法建立二叉树
- javaweb乱码解决最有效的方法
- 解决ajax获取页面直接显示乱码的方法
- 解决cocos2dx中直接输入中文乱码的问题
- [转]最原始的Zend Framework整合Smarty简易方法
- 三阶幻方(用最原始的方法产生)
- 解决"当前不会命中断点。源代码与原始版不同 "最简单的方法
- 解决中文乱码问题的超值方法
- 解决中文乱码问题的方法
- 解决数据库乱码问题的方法
- 解决ubuntu中文乱码问题的方法
- Qt5解决中文乱码问题的方法
- 最简便的解决Git bash 中文乱码的方法
- JavaScript中解决Microsoft.XMLHTTP乱码的最简单方法
- 解决Java中乱码最狠的办法,直接在Tomcat中修改
- python 原始列表直接去重的方法
- cocos2d-x封装一个转码的工具解决中文乱码可以直接拖过去用通用跨平台
- HDU (6055)Regular polygon (2017多校训练赛1011)
- java几种不同方法查询数组中包括某个值时所用的速度
- 异常 作业
- 每日收获之enum/typedef
- 线程--(1)单例模式创建
- 1 用最原始的方法解决乱码问题---直接手动转码
- POJ 3087 Shuffle'm Up 模拟
- 笨小熊
- java 通过反射获取注解
- 邻接表模板
- 智能指针
- 1077. Kuchiguse (20)
- noip2011 玛雅游戏 大模拟
- jdk1.8中arrayList源码解析