public static void main(String[] args) {
// 字符串转码 unicode > gbk
System.out.println(UnicodeToGBK1("//u9009//u5173"));
System.out.println(UnicodeToGBK2("31种美国风味冰淇淋")) ;
}
/**
* Unicode 转GBK码
*
* @param dataStr 字符串类型 //u9009//u5173
* @return
*/
public static String UnicodeToGBK1(String dataStr) {
int index = 0;
StringBuffer buffer = new StringBuffer();
while(index<dataStr.length()) {
if(!"//u".equals(dataStr.substring(index,index+2))){
buffer.append(dataStr.charAt(index));
index++;
continue;
}
String charStr = "";
charStr = dataStr.substring(index+2,index+6);
char letter = (char) Integer.parseInt(charStr, 16 );
buffer.append(letter);
index+=6;
}
return buffer.toString();
}
/**
* Unicode 转GBK码
*
* @param s 字符串类型 浙菜
* @return
*/
public static String UnicodeToGBK2(String s){
String[] k = s.split(";") ;
String rs = "" ;
for(int i=0;i<k.length;i++) {
int strIndex=k[i].indexOf("&#");
String newstr = k[i];
if(strIndex>-1) {
String kstr = "";
if(strIndex>0) {
kstr = newstr.substring(0,strIndex);
rs+=kstr;
newstr = newstr.substring(strIndex);
}
int m = Integer.parseInt(newstr.replace("&#",""));
char c = (char)m ;
rs+= c ;
} else {
rs+=k[i];
}
}
return rs;
}