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