Skip to content

Commit 6b0debf

Browse files
authored
Merge pull request #554 from YangSen-qn/master
support non utf-8 env
2 parents 154f283 + 59d5f48 commit 6b0debf

File tree

7 files changed

+19
-13
lines changed

7 files changed

+19
-13
lines changed

src/main/java/com/qiniu/http/Response.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.qiniu.http;
22

33

4+
import com.qiniu.common.Constants;
45
import com.qiniu.common.QiniuException;
56
import com.qiniu.util.Json;
67
import com.qiniu.util.StringMap;
@@ -96,7 +97,7 @@ public static Response create(okhttp3.Response response, String address, double
9697
try {
9798
body = response.body().bytes();
9899
if (response.code() >= 400 && !StringUtils.isNullOrEmpty(reqId) && body != null) {
99-
ErrorBody errorBody = Json.decode(new String(body), ErrorBody.class);
100+
ErrorBody errorBody = Json.decode(new String(body, Constants.UTF_8), ErrorBody.class);
100101
error = errorBody.error;
101102
}
102103
} catch (Exception e) {
@@ -123,7 +124,7 @@ public static Response createError(okhttp3.Response response, String address, do
123124
try {
124125
body = response.body().bytes();
125126
if (response.code() >= 400 && !StringUtils.isNullOrEmpty(reqId) && body != null) {
126-
ErrorBody errorBody = Json.decode(new String(body), ErrorBody.class);
127+
ErrorBody errorBody = Json.decode(new String(body, Constants.UTF_8), ErrorBody.class);
127128
error = errorBody.error;
128129
}
129130
} catch (Exception e) {

src/main/java/com/qiniu/storage/ApiUploadV2CompleteUpload.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.qiniu.storage;
22

3+
import com.qiniu.common.Constants;
34
import com.qiniu.common.QiniuException;
45
import com.qiniu.http.Client;
56
import com.qiniu.http.MethodType;
67
import com.qiniu.util.Json;
78
import com.qiniu.util.StringUtils;
89

10+
import java.nio.charset.Charset;
911
import java.util.HashMap;
1012
import java.util.List;
1113
import java.util.Map;
@@ -214,7 +216,7 @@ protected void buildBodyInfo() throws QiniuException {
214216
}
215217

216218
String bodyString = Json.encode(bodyMap);
217-
byte[] body = bodyString.getBytes();
219+
byte[] body = bodyString.getBytes(Constants.UTF_8);
218220
setBody(body, 0, body.length, null);
219221
}
220222
}

src/main/java/com/qiniu/storage/BucketManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -908,7 +908,7 @@ public Response getBucketEventsResponse(String bucket) throws QiniuException {
908908
*/
909909
public Response putCorsRules(String bucket, CorsRule[] rules) throws QiniuException {
910910
String url = String.format("%s/corsRules/set/%s", configHelper.ucHost(), bucket);
911-
Response res = post(url, Json.encode(rules).getBytes());
911+
Response res = post(url, Json.encode(rules).getBytes(Constants.UTF_8));
912912
if (!res.isOK()) {
913913
throw new QiniuException(res);
914914
}

src/main/java/com/qiniu/storage/FixBlockUploader.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.qiniu.storage;
22

33
import com.google.gson.Gson;
4+
import com.qiniu.common.Constants;
45
import com.qiniu.common.QiniuException;
56
import com.qiniu.http.Client;
67
import com.qiniu.http.Response;
@@ -443,7 +444,7 @@ Response makeFile(String bucket, String base64Key, Token token, String uploadId,
443444
final StringMap headers = new StringMap().put("Authorization", "UpToken " + token.getUpToken());
444445
sortAsc(etags);
445446
byte[] data = new MakefileBody(etags, fileName, params)
446-
.json().getBytes(Charset.forName("UTF-8"));
447+
.json().getBytes(Constants.UTF_8);
447448

448449
// 1
449450
Response res = makeFile1(url, data, headers, true);
@@ -494,7 +495,7 @@ private String parseBucket(String upToken) throws QiniuException {
494495
try {
495496
String part3 = upToken.split(":")[2];
496497
byte[] b = UrlSafeBase64.decode(part3);
497-
StringMap m = Json.decode(new String(b, Charset.forName("UTF-8")));
498+
StringMap m = Json.decode(new String(b, Constants.UTF_8));
498499
String scope = m.get("scope").toString();
499500
return scope.split(":")[0];
500501
} catch (Exception e) {
@@ -909,7 +910,7 @@ public Record reloadRecord() {
909910
if (recorder != null) {
910911
try {
911912
byte[] data = recorder.get(recordFileKey);
912-
record = new Gson().fromJson(new String(data, Charset.forName("UTF-8")), Record.class);
913+
record = new Gson().fromJson(new String(data, Constants.UTF_8), Record.class);
913914
if (!record.isValid()) {
914915
record = null;
915916
}
@@ -930,7 +931,7 @@ public void delRecord() {
930931
public void syncRecord(Record record) {
931932
if (needRecord && recorder != null && record.etagIdxes.size() > 0) {
932933
sortAsc(record.etagIdxes);
933-
recorder.set(recordFileKey, new Gson().toJson(record).getBytes(Charset.forName("UTF-8")));
934+
recorder.set(recordFileKey, new Gson().toJson(record).getBytes(Constants.UTF_8));
934935
}
935936
}
936937

src/main/java/com/qiniu/storage/persistent/FileRecorder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.qiniu.storage.persistent;
22

3+
import com.qiniu.common.Constants;
34
import com.qiniu.storage.Recorder;
45
import com.qiniu.util.StringUtils;
56

src/main/java/com/qiniu/util/Auth.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.qiniu.util;
22

33
import com.google.gson.annotations.SerializedName;
4+
import com.qiniu.common.Constants;
45
import com.qiniu.http.Client;
56
import com.qiniu.http.Headers;
67

@@ -58,7 +59,7 @@ public final class Auth {
5859
"asyncOps",
5960
};
6061
private static boolean[] isTokenTable = genTokenTable();
61-
private static int toLower = 'a' - 'A';
62+
private static byte toLower = 'a' - 'A';
6263
public final String accessKey;
6364
private final SecretKeySpec secretKey;
6465

@@ -104,7 +105,7 @@ public void accept(String key, Object value) {
104105
// returned without modifications.
105106
private static String canonicalMIMEHeaderKey(String name) {
106107
// com.qiniu.http.Headers 已确保 header name 字符的合法性,直接使用 byte ,否则要使用 char //
107-
byte[] a = name.getBytes(Charset.forName("UTF-8"));
108+
byte[] a = name.getBytes(Constants.UTF_8);
108109
for (int i = 0; i < a.length; i++) {
109110
byte c = a[i];
110111
if (!validHeaderFieldByte(c)) {
@@ -123,7 +124,7 @@ private static String canonicalMIMEHeaderKey(String name) {
123124
a[i] = c;
124125
upper = c == '-'; // for next time
125126
}
126-
return new String(a);
127+
return new String(a, Constants.UTF_8);
127128
}
128129

129130
private static boolean validHeaderFieldByte(byte b) {
@@ -443,7 +444,7 @@ public String signQiniuAuthorization(String url, String method, byte[] body, Hea
443444

444445
if (body != null && body.length > 0 && null != contentType && !"".equals(contentType)
445446
&& !"application/octet-stream".equals(contentType)) {
446-
sb.append(new String(body));
447+
sb.append(new String(body, Constants.UTF_8));
447448
}
448449
Mac mac = createMac();
449450
mac.update(StringUtils.utf8Bytes(sb.toString()));

src/main/java/com/qiniu/util/StringUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public static String utf8String(byte[] data) {
139139

140140
public static String md5Lower(String src) throws NoSuchAlgorithmException {
141141
MessageDigest digest = MessageDigest.getInstance("MD5");
142-
digest.update(src.getBytes(Charset.forName("UTF-8")));
142+
digest.update(src.getBytes(Constants.UTF_8));
143143
byte[] md5Bytes = digest.digest();
144144
return Hex.encodeHexString(md5Bytes);
145145
}

0 commit comments

Comments
 (0)