⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transcn.java

📁 struts spring ibatis
💻 JAVA
字号:
package com.struts2.framework.util;
import java.io.*;
public class transCN{ 
static public String convertUTF8String2Unicode(String instr) 
throws IOException { 
//byte[] strbytes = instr.getBytes(); 
int charindex = instr.length(); 
int actualValue; 
int inputValue; 
StringBuffer sbtemp = new StringBuffer(); 

for (int i = 0; i < charindex;) { 

actualValue = -1; 
inputValue = instr.charAt(i++); 

inputValue &= 0xff; 

   if ((inputValue & 0x80) == 0) { 
       actualValue = inputValue; 
   } 
   else if ((inputValue & 0xF8) == 0xF0) { 
       actualValue = (inputValue & 0x1f) << 18; 

       int nextByte = instr.charAt(i++) & 0xff; 
       if ((nextByte & 0xC0) != 0x80) 
           throw new IOException("Invalid UTF-8 format"); 
       actualValue += (nextByte & 0x3F) << 12; 

       nextByte = instr.charAt(i++) & 0xff; 
       if ((nextByte & 0xC0) != 0x80) 
           throw new IOException("Invalid UTF-8 format"); 
       actualValue += (nextByte & 0x3F) << 6; 

       nextByte = instr.charAt(i++) & 0xff; 
       if ((nextByte & 0xC0) != 0x80) 
       throw new IOException("Invalid UTF-8 format"); 
       actualValue += (nextByte & 0x3F); 
       } 
       else if ((inputValue & 0xF0) == 0xE0) { 
       actualValue = (inputValue & 0x1f) << 12; 

       int nextByte = instr.charAt(i++) & 0xff; 
       if ((nextByte & 0xC0) != 0x80) 
           throw new IOException("Invalid UTF-8 format"); 
       actualValue += (nextByte & 0x3F) << 6; 

   nextByte = instr.charAt(i++) & 0xff; 
   if ((nextByte & 0xC0) != 0x80) 
       throw new IOException("Invalid UTF-8 format"); 
   actualValue += (nextByte & 0x3F); 
   } 
   else if ((inputValue & 0xE0) == 0xC0) { 
   actualValue = (inputValue & 0x1f) << 6; 

   int nextByte = instr.charAt(i++) & 0xff; 
   if ((nextByte & 0xC0) != 0x80) 
   throw new IOException("Invalid UTF-8 format"); 
   actualValue += (nextByte & 0x3F); 
   } 
   sbtemp.append((char) actualValue); 
   } 

   return sbtemp.toString(); 
   } 

public static byte[] convertUnicode2UTF8Byte(String instr) { 
int len = instr.length(); 
byte[] abyte = new byte[len << 2]; 
int j = 0; 
for (int i = 0; i < len; i++) { 
char c = instr.charAt(i); 

if (c < 0x80) { 
abyte[j++] = (byte) c; 
} 
else if (c < 0x0800) { 
abyte[j++] = (byte) (((c >> 6) & 0x1F) | 0xC0); 
abyte[j++] = (byte) ((c & 0x3F) | 0x80); 
} 
else if (c < 0x010000) { 
abyte[j++] = (byte) (((c >> 12) & 0x0F) | 0xE0); 
abyte[j++] = (byte) (((c >> 6) & 0x3F) | 0x80); 
abyte[j++] = (byte) ((c & 0x3F) | 0x80); 
} 
else if (c < 0x200000) { 
abyte[j++] = (byte) (((c >> 18) & 0x07) | 0xF8); 
abyte[j++] = (byte) (((c >> 12) & 0x3F) | 0x80); 
abyte[j++] = (byte) (((c >> 6) & 0x3F) | 0x80); 
abyte[j++] = (byte) ((c & 0x3F) | 0x80); 
} 
} 

byte[] retbyte = new byte[j]; 
for (int i = 0; i < j; i++) { 
retbyte[i] = abyte[i]; 
} 
return retbyte; 
} 
  
public static String ISO106462Unicode(byte[] myByte){ 
 String result=new String(""); 
  
 StringBuffer sb = new StringBuffer(""); 
 try 
 { 
 /*将字符串转换成byte数组*/ 
   //byte[] myByte= str.getBytes("ISO10646"); 

   int len = myByte.length; 

   for(int i=0;i < len;i=i+2) 
   { 
     byte hiByte=myByte[i]; 
     byte loByte=myByte[i+1]; 

     int ch =(int)hiByte << 8; 
      ch = ch & 0xff00; 
      ch +=(int)loByte & 0xff; 

      sb.append((char)ch); 
   } 

   result = new String(sb.toString()); 

   } 
   catch(Exception e) 
   { 
     System.out.println("Encoding Error"); 
   } 
 return result; 
} 

public static byte[] Unicode2Byte(String s) 
{ 
int len = s.length(); 
byte abyte[] = new byte[len << 1]; 
int j = 0; 
for(int i = 0; i < len; i++) 
{ 
char c = s.charAt(i); 
abyte[j++] = (byte)(c & 0xff); 
abyte[j++] = (byte)(c >> 8); 
} 

return abyte; 
} 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -