utf-8转unicode
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public static String utf8ToUnicode(String inStr) {
char [] 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);
} else {
//汉字
short s = ( short ) myBuffer[i];
String hexS = Integer.toHexString(s);
String unicode = "\\u" +hexS;
sb.append(unicode.toLowerCase());
}
}
return sb.toString();
}
|
unicode转utf-8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
public static String unicodeToUtf8(String theString) {
char aChar;
int len = theString.length();
StringBuffer outBuffer = new StringBuffer(len);
for ( int x = 0 ; x < len;) {
aChar = theString.charAt(x++);
if (aChar == '\\' ) {
aChar = theString.charAt(x++);
if (aChar == 'u' ) {
// Read the xxxx
int value = 0 ;
for ( int i = 0 ; i < 4 ; i++) {
aChar = theString.charAt(x++);
switch (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 IllegalArgumentException(
"Malformed \\uxxxx encoding." );
}
}
outBuffer.append(( char ) value);
} else {
if (aChar == 't' )
aChar = '\t' ;
else if (aChar == 'r' )
aChar = '\r' ;
else if (aChar == 'n' )
aChar = '\n' ;
else if (aChar == 'f' )
aChar = '\f' ;
outBuffer.append(aChar);
}
} else
outBuffer.append(aChar);
}
return outBuffer.toString();
}
|
补充知识:java get请求带参数报错 java.io.IOException: Server returned HTTP response code: 400 for URL
解决方案
在使用JAVA发起http请求的时候,经常会遇到这个错误,我们copy请求地址在浏览器中运行的时候又是正常运行的,造成这个错误的原因主要是因为请求的URL中包含空格,这个时候我们要使用URLEncoder.encode(timestamp,"utf-8")对含有空格的参数进行处理;(注:只对需要处理的参数部分进行处理,不要把整个URL放进去,如果整个URL放进去会对URL中的"//"也会进行处理);
以上这篇java Unicode和UTF-8之间转换实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/weibanggang/p/11491199.html