编码java实现的utf8,gbk,unicode编码相互转换的代码

unicode转换  时间:2021-04-12  阅读:()

Java实现的utf8 gbk unic ode编码相互转换的代码public static String GBK2Unicode(String str) {

StringBuffer result=new StringBuffer();for(int i=0; i s tr.length(); i++) {c har c hr 1=(c har) str.c harAt(i);if(!isNeedConvert(chr 1)) {result.append(chr 1);c ontinue;result.append( \\u+Integer.toHexString((int)c hr 1));return result.toString();

*@param dataStr

*@return Stringpublic static String Unicode2GBK(String dataStr) {int index=0;

StringBuffer buffer=new StringBuffer();int li_len=dataStr.length();while(index li_len) {if(index=li_len- 1

| | ! \\u.equals(dataStr.subs tring(index, index+2))) {buffer.append(dataStr.charAt(index));index++;c ontinue;

String charStr=

charStr=dataStr.substring(index+2, index+6);char letter=(char) Integer.pars eInt(charStr, 16);buffer.app end(letter);index+=6;return buffer.toString();public static boolean isNeedConvert(char para) {r eturn((p ar a(0 x 00 F F)) !=p ar a);

*utf-8转unic ode

*@param inStr

*@return Stringpublic static String utf8ToUnicode(String inStr) {c har[]myBuffer=inStr.toCharArray();

StringBuffer sb=new StringBuffer();for(int i=0; i inStr.length(); i++) {

UnicodeBlock ub=UnicodeBlock.of(myBuffer[i]);if(ub==UnicodeBlock.BASIC_LATIN) {sb.append(myBuffer[i]);

} else if(ub==UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {int j=(int)myBuffer[i] -65248;sb.append((char)j);

} els e {short s=(short)myBuffer[i];

String hexS=Integer.toHexString(s);

String unicode=\\u+hexS;sb.append(unic ode.toLow erCas e());return sb.toString();

*@param theString

*@return Stringpublic static String unicodeToUtf8(String theString) {char aChar;int len=theString.length();

String Buffer outBuffer=new StringBuffer(len);for(int x=0;x len;) {aChar=theS tring.c harAt(x++);if(aChar==‘\\’) {aChar=theS tring.c harAt(x++);if(aChar==‘u’) {

//Read the xxxxint value=0;for(int i=0; i i++) {aChar=theS tring.c harAt(x++);sw itc h(aChar) {case ‘0’ :case ‘1’ :

case ‘2’ :case ‘3’ :case ‘4’ :case ‘5’ :case ‘6’ :case ‘7’ :case ‘8’ :case ‘9’ :value=(value 4)+aChar- ‘0’ ;break;case ‘a’ :case ‘b’ :case ‘c’ :case ‘d’ :case ‘e’ :case ‘f’ :value=(value 4)+10+aChar- ‘a’ ;break;case ‘A’ :case ‘B’ :case ‘C’ :case ‘D’ :

case ‘E’ :case ‘F’ :value=(value 4)+10+aChar- ‘A’ ;break;default:throw new IllegalArgumentExc eption(Malformed\\uxxxx enc oding.outBuffer.append((c har)value);

} els e {if(aChar==‘t’)aChar=‘\t’ ;els e if(aChar==‘r’)aChar=‘\r’ ;els e if(aChar==‘n’)aChar=‘\n’ ;els e if(aChar==‘f’)aChar=‘\f’ ;outBuffer.app end(aChar);

} els eoutBuffer.app end(aChar);return outBuffer.to String();

}

易探云:香港物理机服务器仅550元/月起;E3-1230/16G DDR3/SATA 1TB/香港BGP/20Mbps

易探云怎么样?易探云(yitanyun.com)是一家知名云计算品牌,2017年成立,从业4年之久,目前主要从事出售香港VPS、香港独立服务器、香港站群服务器等,在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。目前,易探云推出免备案香港物理机服务器性价比很高,E3-1230 8 核*1/16G DDR3/SATA 1TB/香港BGP线路/20Mbps/不限流量,仅...

VPSDime7美元/月,美国达拉斯Windows VPS,2核4G/50GB SSD/2TB流量/Hyper-V虚拟化

VPSDime是2013年成立的国外VPS主机商,以大内存闻名业界,主营基于OpenVZ和KVM虚拟化的Linux套餐,大内存、10Gbps大带宽、大硬盘,有美国西雅图、达拉斯、新泽西、英国、荷兰机房可选。在上个月搞了一款达拉斯Linux系统VPS促销,详情查看:VPSDime夏季促销:美国达拉斯VPS/2G内存/2核/20gSSD/1T流量/$20/年,此次推出一款Windows VPS,依然是...

青果云(590元/年),美国vps洛杉矶CN2 GIA主机测评 1核1G 10M

青果网络QG.NET定位为高效多云管理服务商,已拥有工信部颁发的全网云计算/CDN/IDC/ISP/IP-VPN等多项资质,是CNNIC/APNIC联盟的成员之一,2019年荣获国家高薪技术企业、福建省省级高新技术企业双项荣誉。那么青果网络作为国内主流的IDC厂商之一,那么其旗下美国洛杉矶CN2 GIA线路云服务器到底怎么样?官方网站:https://www.qg.net/CPU内存系统盘流量宽带...

unicode转换为你推荐
研究员声明及重要披露事项请参见第操作http企业cmscms系统的概念是什么phpadmin下载phpMyAdmin 软件下载地址phpadmin下载phpmyadmin怎么安装啊?可以直接下载安装吗?还需要下载其他数据库吗?linux防火墙设置如何在Linux中启动/停止和启用/禁用FirewallD和Iptables防火墙conn.aspconn.asp 在哪打开?应该怎样打开?sqlserver数据库SQL SERVER数据库是可以做什么用的?美要求解锁iPhoneiphone美版解锁硬解大概需要多少钱啊申请支付宝账户如何申请支付宝账户
济南域名注册 汉邦高科域名注册 主机测评网 pccw mediafire vmsnap3 便宜建站 网络星期一 512au evssl证书 2017年万圣节 国外免费空间 最好看的qq空间 京东商城0元抢购 柚子舍官网 最好的免费空间 免费高速空间 umax120 万网空间购买 最漂亮的qq空间 更多