将图像转换为 JSON 时发生错误(数据损坏),反之亦然
Error(Data Corruption) occur while converting image into JSON and vice Versa
在将任何图像转换为数据并后跟 JSON 时,它会在 JSON 字符串中添加一些特殊字符。
在iOS端(服务器端)
Image -> NSData -> NSString - > JSON String (This JSON string
contains some special characters)
在客户端提取时,它会破坏图像数据并且该数据未正确解码。
在Java端(客户端)
Data -> Parse into JSON String -> Image data we get is Corrupted ->
Cannot able to form image
iOS 结尾处的代码:
NSData *dataImage = UIImagePNGRepresentation(baseImgView.image);
NSString *stringImage = [dataImage base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
currentImage = stringImage;
进一步创建了一个名为参数的字典,并使用此将其转换为 json :
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameter options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
请建议我同样处理这个问题?
在 iOS 结束
Image -> NSData ->Base 64 String - > JSON String (This JSON string contains
some special characters)
首先使用 NSDataBase64Encoding64CharacterLineLength(base 64 编码)将其转换为 base 64 字符串,然后在转换为 json 期间使用 NSUTF8StringEncoding(UTF8 编码)。
在 java 结束时,我们需要解码 utf8 字符串编码以及基本编码。
导入 java.util.Base64;
其中一个 Whosebug link(不记得确切的 link)给出了一个想法 that.Code 是这样的:
这里的图片是编码后的字符串.
import java.util.Base64;
try {
// Encode using basic encoder
String base64encodedString=Base64.getEncoder().encodeToString(Image.getBytes("utf-8"));
// System.out.println("Base64 Encoded String (Basic) :" +base64encodedString);
// Decode
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
String replaceableImage = new String(base64decodedBytes, "utf-8");
System.out.println("Original String:" + replaceableImage);
}catch(UnsupportedEncodingException e){
System.out.println("Error :" + e.getMessage());
}
在将任何图像转换为数据并后跟 JSON 时,它会在 JSON 字符串中添加一些特殊字符。
在iOS端(服务器端)
Image -> NSData -> NSString - > JSON String (This JSON string contains some special characters)
在客户端提取时,它会破坏图像数据并且该数据未正确解码。
在Java端(客户端)
Data -> Parse into JSON String -> Image data we get is Corrupted -> Cannot able to form image
iOS 结尾处的代码:
NSData *dataImage = UIImagePNGRepresentation(baseImgView.image);
NSString *stringImage = [dataImage base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
currentImage = stringImage;
进一步创建了一个名为参数的字典,并使用此将其转换为 json :
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameter options:NSJSONWritingPrettyPrinted error:nil];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
请建议我同样处理这个问题?
在 iOS 结束
Image -> NSData ->Base 64 String - > JSON String (This JSON string contains some special characters)
首先使用 NSDataBase64Encoding64CharacterLineLength(base 64 编码)将其转换为 base 64 字符串,然后在转换为 json 期间使用 NSUTF8StringEncoding(UTF8 编码)。
在 java 结束时,我们需要解码 utf8 字符串编码以及基本编码。 导入 java.util.Base64;
其中一个 Whosebug link(不记得确切的 link)给出了一个想法 that.Code 是这样的:
这里的图片是编码后的字符串.
import java.util.Base64;
try {
// Encode using basic encoder
String base64encodedString=Base64.getEncoder().encodeToString(Image.getBytes("utf-8"));
// System.out.println("Base64 Encoded String (Basic) :" +base64encodedString);
// Decode
byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);
String replaceableImage = new String(base64decodedBytes, "utf-8");
System.out.println("Original String:" + replaceableImage);
}catch(UnsupportedEncodingException e){
System.out.println("Error :" + e.getMessage());
}